⑷、当程序拥有时钟后开始计时,时钟在传递过程中不计时,最后时钟会在某个计算机处到时,收到时钟或时钟到时都应给出提示并通知其他计算机。
⑸、程序具有界面,通过界面可了解参与者的信息和当前分布处理状态。

   1.3  相关技术路线
该简易分布式程序的开发,运用各个模块的相关协议,比如,询问-回答协议,握手协议,游戏协同协议等作为程序协议,完成程序里所有的“收—发”各种程序包的过程,连接起来达成该分布式的协同并发作业。合理利用分布式的并发特性,完成各个计算机的对等运行,共同完成一个简易游戏的全部过程。
    2  毕业课题详细设计
   2.1  基本框架
       该毕设软件开发语言选取python,代码分为3个模块:receive(接收模块)、transfer(发送模块)、utils(每个阶段的协议和运行模块),设计过程分为5个阶段:检测阶段、游戏准备阶段、游戏等待开始阶段、游戏开始阶段、游戏阶段。

   2.2  整体详细设计
     (1)、检测阶段:计算机设置为3台(暂定),每台计算机都有属于自己的IP地址,每台计算机相互独立。每当一台电脑只要上线就会向另外的计算机广播一个“hello”的包,并进入等待状态,等待其他计算机的响应,每当其他计算机收到“hello”的包,就会进行响应,返回一个“ACK”的回答包。当计算机接收到“ACK”的包,就会进行确认,确定是哪台计算机的响应,并建立“wait_list”。
       当每台上线的计算机都发送并且接受完毕,都有了自己的“wait_list”时候,检测阶段就完毕了,并进入游戏准备阶段。
      (2)、游戏准备阶段:每台计算机都进入准备游戏阶段,这时,设计了一个三次握手的过程:每台计算机向自己的“wait_list”表里的每一个其他计算机组播一个“请求开始游戏的包—req_start”,其他计算机接受到这个请求包之后,都会向包的发起者返回一个“确认可以开始游戏的包—req_start_ack1”,以确认自己已经收到请求包,并同意开始游戏,并且同时询问发起者,发起者是否也同意开始游戏,当发起者收到其他计算机的确认包“req_start_ack1”后,为了向其他计算机建立游戏连接,并确认自己收到该“ack1”包,并同时转达自己也可以开始游戏的意图,会向其他计算机返回一个“req_start_ack2”(没有给自己返回“ack1”的计算机,意着,对方放弃游戏,不向其发送此包,)。
       由于考虑到网络延迟的情况,有的计算机必然先传包,有的计算机后传包。这时,当每台计算机在发送询问包“req_start”之前,如果已经收到其他计算机的询问包,就不再向该发起者发送询问包,直接与其进行第二次握手,直到建立游戏连接。
       每台已经通过“三次握手”建立连接的计算机,此时进入游戏等待开始阶段。
      (3)游戏等待阶段:
       a、倒计时阶段。每台进入游戏等待阶段的计算机,为了等待其他计算机的接入,先进行倒计时(设置为5秒),每1秒减去一个数值计时,并且显示出每一次当前计时。倒计时期间,如果有后续的计算机完成了“wait_list”,并且成功与进入倒计时阶段的计算机建立连接,许可该计算机加入等待游戏行列。倒计时结束之后,就不再接受新计算机的连接和接入请求。直接开始投票选出MASTER的阶段。
上一篇:JSP停车位预约与指引系统设计
下一篇:基于能量的路由策略研究+文献综述

基于数字IC的电子钟系统的设计+源程序

SIFT算法图像匹配研究+程序

用VB學做黑客”程序【611字】

VB的分布式监控系统通信设计【721字】

ASP技术开发Web数据库检索程序【1514字】

ASP.NET的Web网络應用程序开...

茬應用程序中跟踪MOUSE的坐标【113字】

人性化的用户界面设计研究

室外办公系统创新设计研究

哈萨克民歌中生态美學思想的表现【4092字】

中班幼儿“求助”型告状行为的访谈提纲

硅酸钇镥闪烁晶体的光学性能研究

无刷电机调速系统设计任务书

常用游戏对于小学生英语教学的影响

天秤男婚后出轨能改好吗...

建议全面开放生育政策,...

地方政府跨区域联合环境污染治理研究