云计算判题核的设计与实现+文献综述(9)
时间:2017-06-01 16:50 来源:毕业论文 作者:毕业论文 点击:次
Contest请求数据协议 客户端请求时,只要填写index字段就行了。服务端拿到请求后,判断index的值,约定如果index的值为-1时,表示请求的是整个比赛的列表,server从OnlineJudge上拿到当前所有的比赛列表填入data字段,格式是每个比赛为两行,第一行为比赛的title,第二行是比赛的id(id唯一标识一个比赛),然后发回客户端。如果index不为-1的话,那么说明客户端是请求当前id为index的比赛的所有题目。Server拿到对应比赛的所有题目后,填入data字段,格式为第一行题目的title,第二行是题目的label。(由于OnlineJudge的设计结构,比赛和普通的题目是不一样设计,所以比赛中的题目是按照contest的id和题目的label确定的)。 2. 下载服务 目前server提供两种下载:判题核心下载,测试数据下载。 判题核心以二进制传输,每次传输的最大长度是512字节。 测试数据以字符形式传输,每次传输最大长度为512字节。 客户端需要填入fileName字段,然后请求服务器发出相应的判题核心。目前的核心有两部分,”core.exe” “sandbox.dll”目前的判题核心只能在windows平台下使用。 服务端接收到请求判题核心下载时,从本地读到判题核心,然后分段发给客户。服务端以byte数组发送给客户端,每次512字节。 客户端请求数据时,需要填入problemId ,FileName。ProblemId为题目标号,FileName为 problemId+”.in”或者+”.out”,分别为测试数据的输入和输出。 服务端收到请求数据下载时,从本地读到测试数据,分段发送给客户。服务端把从文件中读到的数据填入Text中,并且Length中填写数据的长度,一般为512,当到最后结束的时候,可能小于512。当读完之后,Length填0标记发送结束。 (责任编辑:qin) |