设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>计算机毕业设计 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
基于Python实现的WoW游戏软件 课程论文+客户端服务端源码+答辩PPT
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  


目录
一、主要设计思路: 2
1、客户端主要设计思路: 2
2、服务器主要设计思路 3
3、中间协议包制造和收到的数据处理设计思路 4
二、遇到的问题和解决方法 4
1、问题描述: 4
2、问题描述: 5
3、问题描述: 5
4、问题描述: 5
5、问题描述: 5
服务器端: 5
1.问题描述: 5
2.问题描述: 5
3.问题描述: 6
4.问题描述: 6
协议包制造和数据处理: 6
1、问题描述: 6
2、问题描述: 6
3、问题描述: 6
4、问题描述: 6
三、成果展示 7
客户端: 7
服务器: 9
四、实习收获和心得体会 11
一、主要设计思路:
我们选择 Tcp 协议进行传输,之所以采用 tcp,首先是因为 tcp 传输稳定, 相比于 udp 不稳定的传输,tcp 能确保消息一定传输出去。然后是 tcp 有服务器,相比于 p2p 无服务器模型,tcp 可以记录数据,方便用于商用而且也比较安全。
1、客户端主要设计思路:
基于 TCP 协议,实现发送消息给服务器和从服务器接收消息。要实现“迷你魔兽世界” 客户端的基本框架主要分为以下几个部分:
(1)、指令,根据输入的指令,比如 login,move,attack 等,客户端要判断指令的有

指令设计,输入指令 login playername,客户端向服务器发送登录请求,输入指令 move
direction,客户端向服务器发送移动请求,输入指令 attcak playername,客户端发送攻击另一位玩家的请求,输入指令 speak message,表示该玩家要发言,内容为 message,同样要向服务器发送请求,输入指令 logout,表示退出登陆。
无效指令,如果输入的不是约定好的指令以及指令结构不正确,则客户端不向服务器发送请求。第一,登陆时玩家名不能有空格;第二,move 指令后面的方向必须在 north,south,
west 和 east 这几个方向中,如果为其他内容,则输出无效的方向的提示;第三,输入 attack 指令后要判断被攻击玩家是否在该玩家视野范围内,如果不在视野范围内,则输出错误信息“The target is not visible”,玩家视野范围为(x-5,x+5),(y-5,y+5),x 和 y 为玩家坐标;第四,speak 生成的数据中可以有空格;第五,logout 指令,没有参数。
(2)、发送请求,根据输入的有效指令得到消息类型和消息内容,按照协议打包成字节发送给服务器。
(3)、处理应答,客户端接收到来自服务器的包,根据协议,先解析出消息类型,再根据不同消息类型的包的结构解析出包中的数据,再根据这些数据输出消息。
(4)、线程问题,客户端必须和服务器端进行异步通信。例如,当其他玩家生成一个
speak 命令,客户端将会收到 SPEAK_NOTIFY 信息从服务器端,尽管客户端没有请求这个消息。这意味着客户端不能阻塞用户的输入。所以将输入指令发送请求和接收广播/应答的函数设为两个线程,其中一个通过一个死循环,输入指令并处理,另一个也是通过死循环不停接收广播/应答并处理。
(5)、异常处理,当遇到一些特殊情况时需要做异常处理。
如果服务器端不可用并且连接不能生成,客服端必须退出,且显示错误信息”The gate to the tiny world of warcraft is not ready.”。要实现这一点,需要通过 try/except连接地址和端口号的时候检测异常。
如果客户端从服务器端收到一个异常消息,客户端必须退出,然后输出错误消息”Meteor is striking the world.”。即如果客户端收到的包的长度不符合规范,或者解析到的消息类型不存在或与包的长度不匹配,说明客户端收到了一个异常消息。
如果客户端和服务器端的连接被异常中断,客服端必须退出,然后显示一个错误消息” The gate to the tiny world of warcraft has disappeared.”。由于 python 中的套接字断开连接时不会出现异常,而是会不断接收到空字符,所以在接收消息的地方做一个判断, 如果接收到的消息长度为 0,说明连接断开,则执行该异常处理。

























  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
基于Python的在线自主考试系 基于腾讯云的个人知识库管理系统 基于Android的酒店预定系统
基于matlab变频器控制交流电 基于微信小程序的家校联动平台管理 基于时频分析与自适应滤波技术的多
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!