已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河河北北农农业业大大学学 本本科科毕毕业业论论文文 设设计计 题题 目 目 网络对战游戏平台 学学 院 院 信息科学与技术学院 专业班级 专业班级 软件工程 0902 班 学学 号 号 二二 O 一三一三 年年 六六 月月 一一 日日 摘要 电脑游戏行业经过二十年的发展 已经成为与影视 音乐等并驾齐驱的全球最重要 的娱乐产业产业之一 其年销售额超过好莱坞的全年收入 近年来 随着互联网在全球 范围内的发展和普及 联网游戏作为一种娱乐手段 正以独特的魅力吸引着越来越多的 玩家 互联网的出现为电脑游戏行业发展注入的新的活力 凭借信息双向交流 速度快 不受空间限制等优势 让真人参与游戏 提高游戏的互动性 仿真性和竞技性 使玩家 在虚拟世界里可以发挥显示世界无法展现的潜能 改变的单机版游戏固定 代办 与机 器对话的状况 本文介绍了该系统的开发背景 意义及国内外现状 然后重点阐述利用 C MFC MySql 开发网络游戏平台系统的过程 包括设计与实现环节 并且通过测试分 析总结出该系统的功能特点 本系统主要完成以下几个方面的功能 1 用户管理 包括对用户注册 登录和游戏 信息的管理 2 游戏大厅 包括游戏房间和聊天的控制 3 五子棋游戏 游戏房间内进 行的网络对战游戏 关键字 网络游戏平台 五子棋 C MFC MySql Abstract After two decades of development the computer game industry has become one of the film music and other entertainment industry to keep pace with the world s most important industry with annual sales of more than Hollywood s annual income The emergence of the Internet as a new vitality into the development of the computer game industry with two way exchange of information speed not restricted by space and other advantages so that the real person involved in the game to improve interactive games simulation and athletic the players in the virtual the world where you can play the world can not show the potential to change the stand alone version of the game is fixed the status of the dialogue with the machine This article describes the development of the system background significance and status quo at home and abroad and then focuses on the use of C MFC MySql development of online games platform system process Design and Implementation of links and summed up by test and analysis features of the system This system is mainly complete the following aspects 1 user management including user registration login and game information management 2 game lobby control include a games room and chat 3 Backgammon game game room online play game Keywords Online game platform Backgammon C MFC MySql 目录 摘要 2 Abstract 1 目录 1 1 绪论 1 1 1 研究背景与意义 1 1 2 国内外研究现状 1 1 3 研究内容与目标 1 2 理论技术基础 2 2 1 理论基础 2 2 2 技术基础 2 2 2 1 C 语言简介 2 2 2 2 MFC 类库简介 3 2 2 3 MYSQL 数据库 3 2 2 4 面向对象程序设计简介 3 2 2 5 TCP 与 UDP 协议简介 3 2 2 6 SOCKET 通信机制简介 4 3 系统的分析与设计 4 3 1 需求分析 4 3 1 1 可行性分析 4 3 1 2 系统功能分析 4 3 2 总体设计 5 3 2 1 网络游戏平台功能设计 5 3 2 2 登录注册模块设计 5 3 2 3 游戏大厅模块设计 6 3 2 4 五子棋游戏模块设计 6 3 2 5 服务器模块设计 6 3 2 6 数据库模块设计 6 3 3 系统详细设计 6 3 3 1 注册登录模块详细设计 6 3 3 2 游戏大厅模块详细设计 7 3 3 3 五子棋模块详细设计 8 3 3 4 服务器模块详细设计 9 3 3 5 数据字典 10 3 3 6 表结构说明 11 4 系统的实现 11 4 1 用户的注册与登录 11 4 1 1 用户登录 11 4 1 2 用户注册 11 4 2 游戏大厅模块 12 4 2 1 更新游戏房间信息 12 4 2 2 大厅内玩家聊天 12 4 2 3 显示所有玩家信息 13 4 3 五子棋游戏模块 13 4 3 1 绘制五子棋棋盘 13 4 3 2 绘制棋子 14 4 3 3 判断胜负 14 4 3 4 悔棋 15 4 3 5 求和 15 4 4 服务器模块 16 4 4 1 接收客户端连接 16 4 4 2 验证客户端注册和登录信息 17 4 4 3 转发聊天信息 17 4 4 4 转发和处理游戏信息 18 4 4 5 通知更新房间信息和用户信息 18 5 总结 19 致谢 20 参考文献 21 1 1 绪论 1 1 研究背景与意义 在互联网迅速发展的今天 互联网应用到了各行各业之中 网络游戏与以往的游戏 发展演变之路不同 他不再单单的表现为游戏设备的差异 进而体现了游戏传输载体以 及游戏参与方式的变革 纵观目前全球的游戏产业 网络游戏正走向成熟和深化 技术 融合带来游戏跨平台发展 通过网络 个人电脑 手持终端设备等都可以进行互动游戏 不同的设备可以通过网络运行相同的游戏 随着互联网的扩张和基于互联网应用的发展 联网游戏正以一种独特的魅力吸引着 越来越多的玩家 尤其是五子棋游戏更是得到广大玩家的青睐 因此 开发基于 C S 模 式的网络五子棋游戏具有重要的显示意义 1 2 国内外研究现状 电脑游戏自 1972 年由威尔 克劳舍 Will Crowther 编写的一段简单的 FORTRAN 程 序开始 由于网络游戏需要较大量运算以及网络传输容量 因此早期网络游戏通常以纯 文字讯息作为呈现方式 重视玩家与玩家间的互动 而非声光效果 随着电脑硬件及软 件技术的进步 网络游戏服务器逐渐出现在小型的工作站服务器 并且受到学生族群的 欢迎 其中尤以 MUD 最具代表性 与此同时 传统的单机游戏也开始出现利用局域网路 进行小规模连线 2 8 人 的形式 但多数以射击或即时战略游戏为主 这类型网络游戏进 行时 需要交换数量惊人的同步讯息 因此通常较适合高速的局域网路 难以实现人数 规模更庞大的网络游戏 1990 年代中期 游戏产业开始采用类似 MUD 架构的技术发展网 络游戏 此类架构不同于依赖高速局域网路连线的射击或即时战略游戏 取而代之的是 借由最佳化的通讯协定及复杂的预测式算法 来达成网络游戏所需的资讯同步 这类型 的游戏与 MUD 一样 需要居中运算的游戏服务器 并且能够实现万人以上同时连线进行 游戏的规模 这种类型的游戏后来被统称为大型多人线上游戏 大型多人线上游戏由于 玩家人数和规模庞大的关系 通常属于角色扮演游戏类型 就国内的发展来看 最近些年内的游戏公司如雨后春笋般的成立 所开发或代理的 网络游戏更是不胜枚举 国内的游戏娱乐产业正处于起步阶段 特点表现为 第一 他是 一种文化的传播 娱乐产业可以潜移默化地改变人与人的观念 第二 网络游戏加强了 人与人的沟通 第三 网络游戏具有一定的教育意义 1 3 研究内容与目标 本网络游戏对战平台主要包括用户管理 平台管理和五子棋游戏三个部分 本次研 究的内容为实现一个网络对战平台系统 系统包括有用户的登录和注册 游戏房间的管 理和每个房间内进行的游戏 系统分为客户端和服务器端 客户端主要是玩家发送游戏 2 和聊天信息并处理服务器到本地的各种消息 服务器端主要是接收客户端请求 并对客 户端的请求进行相应的处理 2 理论技术基础 2 1 理论基础 网络游戏 英文名称为 Online Game 又称 在线游戏 简称 网游 指以互联 网为传输媒介 以游戏运营商服务器和用户计算机为处理终端 以游戏客户端软件为信 息交互窗口的旨在实现娱乐 休闲 交流和取得虚拟成就的具有可持续性的个体性多人 在线游戏 网络游戏区别与单机游戏而言的 是指玩家必须通过互联网连接来进行多人 游戏 一般指由多名玩家通过计算机网络在虚拟的环境下对人物角色及场景按照一定的 规则进行操作以达到娱乐和互动目的的游戏产品集合 游戏对战平台是对 Internet 用户提供多人电脑游戏联机服务 它可以让在互联网的 游戏玩家轻松的通过 Internet 进行游戏 就如果在同一个局域网中一样 平台通过网络 协议转换技术 将互联网上远隔千里的玩家紧紧的联系到一起 并且还提供给用户实时 的交流与沟通 五子棋是一种两人对弈的纯策略型棋类游戏 棋具与围棋通用 是起源于中国古代 的传统黑白棋种之一 发展于日本 流行于欧美 容易上手 老少皆宜 而且趣味横生 引人入胜 不仅能增强思维能力 提高智力 而且富含哲理 有助于修身养性 2 2 技术基础 2 2 1 C 语言简介 C 是一种静态数据类型检查的 支持多重编程范式的通用程序设计语言 它支持过 程化程序设计 数据抽象 面向对象程序设计 泛型程序设计等多种程序设计风格 C 是由 C 发展而来的 与 C 兼容 用 C 语言写的程序基本上可以不加修改地用于 C 从 C 的名字可以看出它是 C 的超越和集中 C 既可用于面向过程的结构化程序 设计 又可用于面向对象的程序设计 是一种功能强大的混合型的程序设计语言 C 对 C 的 增强 表现在六个方面 1 类型检查更为严格 2 增加了面向对象的机制 3 增加了泛型编程的机制 template 4 增加了异常处理 5 增加了运算符重载 6 增加了标准模板库 STL 3 面向对象程序设计 是针对开发较大规模的程序而提出来的 目的是提高软件开发的 效率 不要把面向对象和面向过程对立起来 面向对象和面向过程不是矛盾的 而是各有 用途 互为补充的 2 2 2 MFC 类库简介 MFC Microsoft Foundation Classes 是一个微软公司提供的类库 class libraries 以 C 类的形式封装了 Windows 的 API 并且包含一个应用程序框架 以减 少应用程序开发人员的工作量 其中包含的类包含大量 Windows 句柄封装类和很多 Windows 的内建控件和组件的封装类 2 2 3 MYSQL 数据库 MySQL 是最受欢迎的开源 SQL 数据库管理系统 它由 MySQL AB 开发 发布和支持 MySQL AB 是一家基于 MySQL 开发人员的商业公司 它是一家使用了一种成功的商业模式 来结合开源价值和方法论的第二代开源公司 MySQL 是 MySQL AB 的注册商标 MySQL 是 一个快速的 多线程 多用户和健壮的 SQL 数据库服务器 MySQL 服务器支持关键任务 重负载生产系统的使用 也可以将它嵌入到一个大配置 mass deployed 的软件中去 2 2 4 面向对象程序设计简介 面向对象程序设计 英语 Object oriented programming 缩写 OOP 指一种程 序设计范型 同时也是一种程序开发的方法 对象指的是类的集合 它将对象作为程序 的基本单元 将程序和数据封装其中 以提高软件的重用性 灵活性和扩展性 面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想 这与传统的思想刚好相反 传统的程序设计主张将程序看作一系列函数的集合 或者直 接就是一系列对电脑下达的指令 面向对象程序设计中的每一个对象都应该能够接受数 据 处理数据并将数据传达给其它对象 因此它们都可以被看作一个小型的 机器 即 对象 2 2 5 TCP 与 UDP 协议简介 TCP 协议是端点与端点之间建立持续的连接而进行通信 建立连接后 发送端将发送 的数据以字节流的方式发送出去 接收端则按序列顺序将数据整理好 数据在需要时可 以重新发送 TCP 协议具有可靠性和有序性 并且以字节流的方式发送数据 是一种面向 连接的协议 UDP 协议是一种无连接的传输协议 利用 UDP 协议进行数据传输时 首先需要将要传 输的数据定义成数据报 Datagram 在数据报中知名数据所有达到的端点 Socket 主 机地址和端口号 然后再将数据报发送出去 这种传输方式是无序的 也不能确保绝对 的安全可靠 但他很简单而且具有比较高的效率 4 2 2 6 SOCKET 通信机制简介 SOCKET 是网络上运行的两个程序之间双向通信链路的终端点 他是 TCP 和 UDP 的基 础 一个 SOCKET 被绑定到一个端口号上 这样传输层能后识别数据要发送到那个应用程 序 Socket 连接可以分成三个基本的类型 这三个类型是 1 客户端连接 客户端连接是一个本地系统的客户端 socket 与一个远程系统上的服务端 Socket 连接 客户端连接由客户端 Socket 开始 首先 客户端 Socket 必须描述它想连接到的服务端 Socket 接着客户端 socket 查找服务端 socket 当找到服务器时 就要求连接 服务端 socket 可能不能完成正确的连接 服务器 sockets 维持一个 客户端请求队列 在他们有 时间时完成连接 当服务端 socket 接受客户端连接 服务端 socket 将向它想连接的客户 socket 发送一个完整的描述 客户端的连接完成 2 倾听连接 服务器 socket 不会去定位客户端 代替的 他们形成被动的 半连接 状态 倾听 来自客户端的请求 服务器 sockets 形成一个队列 存放 它们听到的连接请求 这个队 列记录着客户端连接请求就象他们已连接进来一样 当服务器 sockets 同意客户连接请 求时 它形成一个新的 socket 去连 接客户端 因此这个倾听连接能保持开放状态允许 其他客户端请求 2 服务端连接 当倾听 socket 同意一个客户端请求时 服务器端 socket 形成一个服务器连接 当服 务器端同意连接时 向客户端发送一个服务端 socket 描述以完 成连接 当客户端 socket 收到这个描述时这个连接得到确认 连接完成 一但连接到客户端的 Socket 完成 服务端连接就不能识别从一个客户端来的连 接 末端双方有同样的能力去接收同样的事 件类型 只有倾听 listening 连接是根本不同的 它只有一个单一的末端 3 系统的分析与设计 3 1 需求分析 3 1 1 可行性分析 1 经济可行性 经济可行性包括两个方面的内容 一是某一备选方案占有和使用 经济资源的可能性 进而实现政策目标的可能性 二是实施某一政策方案所需花费的成 本和取得的收益 作为毕业设计 我们所受到的效益 应该说是受益终生 花费则寥寥 无几 2 技术可行性 技术可行性是指决策的技术和决策方案的技术不能突破组织所拥 有的或有关人员所掌握的技术资源条件的边界 整个系统使用微软官方的 MFC 标准类库 遵守面向对象编程规范 3 法律可行性 本系统不以盈利为目的 而且使用的免费的 C 语言和 MySql 数 据库 不存在违反法律问题 4 操作可行性 本系统操作简单 游戏玩法多样 运行环境要求低 5 3 1 2 系统功能分析 本系统主要包括五子棋游戏 游戏平台和服务器三个模块 1 五子棋游戏模块主要实现的功能是可以从游戏大厅启动 两个玩家可以进行游 戏 其它玩家允许观看游戏 同一游戏室中的所有玩家可以进行文字聊天 游戏界面中 要求显示所有玩家的相关信息 可以具有求和 悔棋功能 2 游戏大厅模块游戏大厅包括用户的注册 登录等功能 游戏大厅应可以查看当 前已登录用户的所有信息及其状态 空闲 正在游戏 正在观看游戏 游戏大厅下可设 游戏室 每个游戏室进行一盘五子棋游戏 可以查看各个游戏室的状态 正在游戏 等 待游戏 空闲 可以查看游戏室中的玩家的信息 对于空闲的游戏室玩家可以进入等待 其它玩家 等待游戏状态的游戏室玩家可以进入开始游戏 正在游戏的游戏室玩家只能 进入观看游戏 3 服务器模块主要实现包括接受客户端请求和数据 储存每个用户的游戏成绩 即总游戏局数 胜负平的局数 胜率等 3 2 总体设计 3 2 1 网络游戏平台功能设计 网络游戏平台系统具有用户注册和登录功能 用户登录成功后 可以进行单人游戏 和多人游戏 在多人游戏中有玩家和观看者 平台具有储存用户相关战绩信息的功能 网络游戏平台模块如图 3 1 图 3 2 系统模块图 3 2 2 登录注册模块设计 6 网络游戏平台登录注册模块主要包括注册和登录功能 注册用户时如果用户名存在 则注册失败 返回重新注册 用户名不存在时则注册成功 直接进入到游戏平台界面 用户登录时如果用户名密码正确则进去到游戏平台界面 否则重新登录 3 2 3 游戏大厅模块设计 游戏大厅主要包括多人游戏 单人游戏 聊天三个部分 每个游戏房间内有一局多 人游戏 多人游戏中包括玩家和观看者两种角色 在同一个游戏房间的所有玩家可以进 行聊天 一局游戏结束之后相关胜负战绩将储存到服务器端 在游戏大厅内需要显示本 人和所有在线玩家的信息 3 2 4 五子棋游戏模块设计 五子棋游戏模块主要是对五子棋游戏的棋盘和棋子进行绘制 在玩家下棋后可以悔 棋和求和 游戏具有判断游戏胜负的功能 五子棋游戏单人模式中 对战 AI 的下棋算法 为当对方有三连及以上时便阻碍 否则增加自己的布局 判断胜负算法为在最后一个下 棋位置为中心向周围的方向辐射来计算 3 2 5 服务器模块设计 服务器接收客户端发送的聊天信息 公聊信息发送到所有客户端 私聊信息发送到 指定客户端 服务器接收客户端发送的游戏信息 对于不同的游戏信息有不同的处理 服务器具有对各客户端发送通知的功能 3 2 6 数据库模块设计 网络游戏平台数据库模块设计主要是对用户信息管理数据表 user 表 用户名 密码 胜利局数 失败局数 平局局数 user 表的 E R 图如图 3 2 图 3 2 user 表 E R 图 7 3 3 系统详细设计 3 3 1 注册登录模块详细设计 注册登录界面详细设计主要包括验证注册信息和验证登录信息两个部分 1 验证注册信息 验证注册信息主要包括判断用户名是否存在 两次输入密码是否相同 验证注册信 息成功后进入游戏平台主界面 验证注册信息失败重新注册 2 验证登录信息 验证登录信息主要包括判断用户名和密码是否正确 验证登录信息成功后进入游戏平 台主界面 验证登录信息失败后重新登录 网络游戏平台登陆注册模块中的主要模块结构如下图 3 3 所示 图 3 3 登录注册模块图 3 3 2 游戏大厅模块详细设计 游戏大厅模块详细设计主要包括更新游戏房间信息 大厅内玩家聊天 显示本人信 息 显示其他玩家信息 1 更新游戏房间信息 8 根据服务器端存储的各个房间的游戏状态 空闲 等待游戏 正在游戏 更新本 地游戏房间的状态 2 大厅内玩家聊天 所有在大厅里面的玩家可以进行聊天 聊天分为公聊和私聊 3 显示本人信息 在游戏大厅显示本人的信息 包括用户名 胜场数 负场数 平局数 胜率 4 显示其他玩家信息 在游戏大厅界面显示其他玩家的信息 包括用户名 胜场数 负场数 平局数 胜率 网络游戏平台游戏大厅模块设计图如图 3 4 图 3 4 游戏大厅模块 3 3 3 五子棋模块详细设计 五子棋模块详细设计主要包括绘制游戏棋盘 判断下棋位置 绘制棋子 判断胜 负关系 1 绘制游戏棋盘 绘制一个 15 15 大小的棋盘 2 判断下棋位置 根据鼠标点击的坐标计算下棋的位置 如果坐标不在棋盘内部 则不绘制棋子 3 绘制棋子 如果鼠标点击的位置经过判断之后位于棋盘内 绘制相应颜色的棋子 4 判断胜负关系 每下完一个棋子之后根据当前所有棋子的位置判断是否分出胜负 如果分出胜负 则不在允许下棋 否则继续游戏 网络游戏平台五子棋游戏模块设计如图 3 5 9 图 3 5 五子棋游戏模块设计 3 3 4 服务器模块详细设计 服务器模块详细设计主要包括接收客户端连接 验证客户端注册和登录信息 转发 聊天信息 转发游戏信息 通知更新房间信息 通知更新用户信息 用户退出平台管理 用户进入和退出游戏房间管理 玩家战绩管理 1 接收客户端连接 服务器端可以一直接收不同客户端的连接请求 2 验证客户端注册和登录信息 对客户端发送的注册和登录信息进行分别处理 3 转发聊天信息 对客户端发送的公聊和私聊信息进行相应的转发 对游戏房间内的公聊和私聊信 息进行相应的转发 4 转发和处理游戏信息 客户端发送的游戏信息对位于游戏房间内的其他玩家转发 并对游戏信息进行处 理 5 通知更新房间信息和用户信息 服务器端定时通知所有在线客户端更新房间信息和所有玩家信息 6 用户进入和退出游戏房间管理 用户进入和退出游戏房间后服务器端要对所有相应游戏房间内的其他玩家进行通 知 并且根据游戏房间内的游戏状态更新每个客户端的游戏房间信息 网络游戏平台服务器模块设计如图 3 6 10 图 3 6 服务器模块图 3 3 5 数据字典 本系统的数据字典如下 数据文件 用户信息表 文件组成 id 用户名 密码 胜场数 负场数 平局数 数据项 id 数据类型 整型数据 长度 10 数据项 用户名 数据类型 可变字符 长度 10 数据项 密码 数据类型 可变字符 长度 16 数据项 胜利局数 数据类型 整型数据 长度 10 数据项 失败局数 数据类型 整型数据 长度 10 数据项 平局局数 数据类型 整型数据 长度 10 11 3 3 6 表结构说明 根据逻辑关系模型可直接设计基于某种数据库管理系统支持的物理结构 我们知道 关系数据库是由表构成的 依据用户信息在数据库中建立相应的表 表结构如表 1 所示 表 1 学生信息数据表 4 系统的实现 4 1 用户的注册与登录 4 1 1 用户登录 本系统在登录界面可以输入主机地址 用户名 密码 点击登录按钮进行登录 成 功后进去游戏平台界面 点击取消按钮取消登录操作 点击注册按钮弹出注册界面 登 陆界面如下图 4 1 所示 图 4 1 登陆界面 4 1 2 用户注册 如果用户没有登陆账号密码 点击登录界面的注册按钮弹出注册界面 注册界面中 字段名数据类型长 度主键 外键 idInt10 主键 用户名 Varchar10 否 密码 Varchar16 否 胜利局数 Int10 否 失败局数 Int10 否 平局局数 Int10 否 12 可以输入服务器 IP 昵称 密码 密码确认 两次密码输入必须相同才可以进行注册 注册成功后跳转到游戏平台界面 注册界面如下图 4 2 图 4 2 用户注册 4 2 游戏大厅模块 4 2 1 更新游戏房间信息 客户端要接收服务器定时发送的房间更新信息对所有房间信息进行更新 游戏平台 内所有房间有三种状态 房间空闲 正在等待 正在游戏 没有玩家在游戏房间时 房 间状态为空闲 有一名玩家进入后房间状态为正在等待 两名玩家以上进入房间后房间 状态为正在游戏 更新房间状态如下图 4 3 图 4 3 房间更新状态 13 4 2 2 大厅内玩家聊天 游戏平台提供了聊天功能 可以选择 所有人 进行公聊 也可以选择特定玩家进 行私聊 聊天界面如图 4 4 图 4 4 管理员查询学生 4 2 3 显示所有玩家信息 游戏大厅内可以显示本人和其他在线玩家的信息 玩家信息包括 用户名 状态 胜场 负场 平场 胜率 玩家状态包括 游戏和大厅 显示在线玩家信息界面如下图 4 5 图 4 5 在线玩家信息界面 显示本人信息界面如下图 4 6 图 4 6 本人信息界面 4 3 五子棋游戏模块 4 3 1 绘制五子棋棋盘 14 绘制一个 15 15 的棋盘 背景颜色为 RGB 175 255 180 到 RGB 115 220 200 的渐变 颜色 绘制了天元等点 棋盘界面如图 4 7 图 4 7 棋盘界面 4 3 2 绘制棋子 根据鼠标点击位置判断位置是否在棋盘内 如果判断结果在棋盘内 则在指定位置 绘制指定颜色的棋子 否则不进行处理 下棋界面如图 4 8 图 4 8 下棋界面 4 3 3 判断胜负 15 每次下一个棋子之后判断胜负 以当前棋子为中心判断它的所有方向内是否有五个 相同颜色棋子连成一线 如果存在五个相同颜色棋子连成一线则分出胜负 客户端发送 胜负关系到服务器 否则继续下棋直到分出胜负 判断胜负界面如图 4 9 图 4 9 判断胜负界面 4 3 4 悔棋 在下棋之后可以点击悔棋按钮悔棋一步 轮到本人下棋之后不能进行悔棋 客户端 悔棋后向服务器发送悔棋消息代码如下 Message msObj memset msObj iType INGAME msObj iSubType REGRET CString strTemp theApp m skMainSocket GetUserName int iLen strTemp GetLength lstrcpy msObj strName strTemp GetBuffer iLen CString piecePos piecePos Format T ld ld lastChess x lastChess y lstrcpy msObj strContent piecePos GetBuffer iLen theApp m skMainSocket Send m isTurn ISTURN m isCanRegret DONOTREGRET 4 3 5 求和 玩家可以点击求和按钮进行求和 对方同意后本局游戏结束 客户端发送游戏平局 消息到服务器 下一局游戏重新开始 否则继续进行本局游戏 求和界面如图 4 10 16 图 4 10 求和界面 4 4 服务器模块 4 4 1 接收客户端连接 服务器端创建 SOCKET 能够随时接收客户端的连接请求 服务端程序需要判断指定端 口是否可用 如果可用创建 SOCKET 服务器端创建 SOCKET 并监听相应的端口的代码如下 if m port 66000 AfxMessageBox 此端口不提供使用 return else if m port 1024 POSITION pos m pClientList GetHeadPosition if pos for int i 0 i GetCount i CClientSocket m pClientSocket static cast m pClientList GetNext pos CString strName m pClientSocket GetUserName if strName strUserName m pClientSocket Send 18 4 4 4 转发和处理游戏信息 服务器端对客户端发送的消息进行分析 将游戏相关信息和聊天信息进行区分 提 取相关游戏消息 服务器将客户端发送的游戏信息转发给同房间内所有玩家 并对游戏 的胜负信息进行记录 服务器转发游戏信息的主要代码如下 Message msObj1 memset msObj1 iType INGAME msObj1 iSubType GETCHESS CString strTemp m Message strContent int len strTemp GetLength lstrcpy msObj1 strContent strTemp GetBuffer len m gClientSocket Send 4 4 5 通知更新房间信息和用户信息 服务器端接收所有房间信息和用户信息的变化 每隔特定时间向客户端发送更新消 息 使客户端进行房间信息和用户信息的更新 通知客户端进行用户信息更新的主要代 码如下 Message m Message memset m Message iType INFOREFRESH m Message iSubType PLAYERSINFO userInfoStr userInfoStr Left userInfoStr GetLength 1 int len2 userInfoStr GetLength lstrcpy m Message strContent userInfoStr GetBuffer len2 CPtrList m pClientList theApp m pClientSocketList pos m pClientList GetHeadPosition if pos for int i 0 i GetCount i CClientSocket m pClientSocket static cast m pClientList GetNext pos C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网咖电脑供货合同范本
- 社工项目合作协议合同
- 美国龙鱼买卖合同协议
- 澳门金管局协议书范本
- 高中法律顾问合同范本
- 街道清理项目合同范本
- 监理方的安全合同范本
- 网约车不签合同签协议
- 进口物流租赁合同范本
- 物业临停车位合同协议
- 低钾血症诊疗与护理要点
- 《放射诊疗许可讲解》课件
- 椎间孔镜手术护理
- 诊所承包经营合同
- 2025年中国智能巡检机器人行业市场深度评估及投资战略规划报告
- 《学生平安保险业务培训》课件
- 重庆大学《创业管理A》2023-2024学年第一学期期末试卷
- 2025年客房服务员(高级)客房服务员职业技能培训题库
- 第五届全国智能制造应用技术技能大赛决赛-理论知识题库
- 2024-2025学年陕西省西安市临潼区三年级(上)期中语文试卷
- 招聘笔试题与参考答案(某大型国企)2025年
评论
0/150
提交评论