在線oj項目框架和前期準備工作

整體框架
1.目標:實現一個在線判題系統(類似於leetcode)
2.前臺工作流程:
①請求題目列表 ②獲取題目詳細信息 ③作答 ④提交代碼 ⑤獲取結果
3.後臺工作流程:
①啓動服務 ②監聽,等待客戶端連接 ③返回題目列表 ④返回題目詳細信息 ⑤編譯和判題 ⑥返回結果
4.服務端模塊
在這裏插入圖片描述
server模塊:主要負責客戶端和服務端的通信,提供http服務,串聯試題模塊和判題模塊。
試題模塊:保存試題信息,提供接口給server模塊調用
判題模塊:負責試題的編譯與運行,提供接口給server模塊調用
工具模塊:提供時間戳服務,用於區分不同時間段提交的代碼
日誌模塊:保存提交信息

準備工作
1.快速搭建 HTTP 服務器
採用github上的一個開源庫:http服務器
注意:但是這個庫依賴 C++ 11 中的正則表達式. 而 Centos7 自帶的 gcc4.8 正則表達式有 bug. 需要升級 gcc 版本

2.升級gcc
採用源碼編譯安裝很麻煩,所以這裏我們採用devtool 的方法
鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章