在线oj项目框架和前期准备工作

整体框架
1.目标:实现一个在线判题系统(类似于leetcode)
2.前台工作流程:
①请求题目列表 ②获取题目详细信息 ③作答 ④提交代码 ⑤获取结果
3.后台工作流程:
①启动服务 ②监听,等待客户端连接 ③返回题目列表 ④返回题目详细信息 ⑤编译和判题 ⑥返回结果
4.服务端模块
在这里插入图片描述
server模块:主要负责客户端和服务端的通信,提供http服务,串联试题模块和判题模块。
试题模块:保存试题信息,提供接口给server模块调用
判题模块:负责试题的编译与运行,提供接口给server模块调用
工具模块:提供时间戳服务,用于区分不同时间段提交的代码
日志模块:保存提交信息

准备工作
1.快速搭建 HTTP 服务器
采用github上的一个开源库:http服务器
注意:但是这个库依赖 C++ 11 中的正则表达式. 而 Centos7 自带的 gcc4.8 正则表达式有 bug. 需要升级 gcc 版本

2.升级gcc
采用源码编译安装很麻烦,所以这里我们采用devtool 的方法
链接

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