我现在在做一个在线考试系统,服务器端为每一个客户端开一个线程,用于通讯。考试时间到了后,我在服务器端向各个客户端发命令,然后客户端将试卷用文件的形式发送给服务器端。
我希望一次只收三个人的试卷,收取完后在接受另外三个人的试卷,直到收完。
现在我的问题是:当我发送完收试卷的命令后,就会转到其相应的线程去接受试卷,我怎么判断这三个人的试卷收完了,然后开始收另外的试卷呢。
请各位高手给我点意见!
我希望一次只收三个人的试卷,收取完后在接受另外三个人的试卷,直到收完。
现在我的问题是:当我发送完收试卷的命令后,就会转到其相应的线程去接受试卷,我怎么判断这三个人的试卷收完了,然后开始收另外的试卷呢。
请各位高手给我点意见!
服务端
等待 。。 连续 接受 3 个 客户端连接, 用CreateThread 创建3 个线程 , 然后使用 WaitForMultipleObjects 等待 3 个线程 全部 完成 , 进行新一轮的 等待
我也考虑过你的这种想法。
但是我现在做的是为每一个客户端都建立一个线程用来通讯,在考试的整个过程中线程都是活跃的。
不过你这种同步线程的做法把你的服务器会拖死去,不信你试试60个线程连你服务器,最好用异步通讯,这样你的客户端多一点也不会成正比消耗资源。