- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在线网络游戏架构 七 DirectPlay编程基础 DirectPlay简介 DirectPlay是DirectX中的一部分,是由微软公司提供的一个独立于网络底层连接的抽象层。 通过DirectPlay,游戏程序不需要知道网络当前的连接状况。DirectPlay通过抽象化通信方法做到这一点。当应用程序使用DirectPlay来实现底层结构联网时,就不必考虑具体使用的联网方法了。 本章主要讨论: 服务提供商 游戏会话 DirectPlay地址 DirectPlay消息处理器 服务供应商( Service Providers?) 服务供应商: DirectPlay中可用的通信方法,如 TCP/IP,通常被称为服务供应商。 通过列举,可以发现有效的服务供应商。 本书中将TCP/IP设置为服务供应商,因为它是最常用的游戏开发协议,并且很适合于互联网。 游戏会话 (Game Sessions) “游戏会话” 是指运行在两个或更多计算机上的多玩家游戏的一个实例。 DirectPlay中的游戏会话类型有两种: 端对端会话类型 客户端/服务器端会话类型 游戏会话 (Game Sessions) 端对端 (Peer-to-Peer) 游戏会话 所有玩家都需要负责与其他玩家之间的指令通信。 一个显而易见的问题是较大的网络流量。 仍然使用了一个服务器,被称为“主机”,负责: 提供一个连接中心,接收新玩家进入游戏。 监视谁在游戏中 当新玩家加入到游戏中,通知每一个玩家 当一个玩家离开游戏时,通知每一个玩家 接收或拒绝新玩家加入到游戏 除了主机,其他的端都必需建立一个连接,以参与到一个端对端会话中。 游戏会话 (Game Sessions) 客户端/服务器端(Client/Server, C/S)会话 服务器负责所有游戏间的通信。客户端只与服务器“交谈”,而不与其他客户端“交谈”。 服务器作为一个独立的控制台应用程序运行,不必处理图形。 服务器需要设置一个可供玩家连接的端口 客户端首先定位所要连接的服务器,然后建立连接。客户端只能向服务器发送或接收数据包,而不能发送包到其他玩家或接收来自其他玩家的包。 DirectPlay地址 用DPlay,则必须创建一个能包含各类信息的特殊地址。 DPlay地址中可以包含大量信息。 创建DirectPlay的地址,需要多个步骤,主要包括: 创建地址对象 设置地址对象的服务供应商 设置地址对象中的组件 DirectPlay地址 1.创建地址对象 首先必须创建IDirectPlay8Address接口对象 hReturn = CoCreateInstance(CLSID_DirectPlay8Address, NULL, CLSCTX_INPROC_SERVER, IID_IDirectPlay8Address, (LPVOID*)g_pHostAddress ); if( FAILED(hReturn) ){ MessageBox( hWindow, “Failed to Create Host Address()”, “Invalid Param”,MB_ICONERROR); return -l; } DirectPlay地址 2.设置地址对象的服务供应商 使用CoCreateInstance()函数创建了地址对象,但所创建的只是一个空地址。为地址准备它所要包含的数据类型,必须先设置它使用的服务供应商。 //将主机地址设置为TCP/IP if ( FAILED (hReturn = g_pHostAddress - SetSP( CLSID_DP8SP_TCPIP ) ) ){ MessageBox ( hWindow, “Failed to SetSP for Host Address”, “Invalid Param”, MB_ICONERROR); return -l; } DirectPlay地址 2.设置地址对象的服务供应商 TCP/IP并不是唯一可用的服务供应商,下表列举了更多可用的供应商。 #定义 用途 CLSID_DP8SP_IPX 基于IPX的地址对象 CLSID_DP8SP_MODEM modem-to-modem连接 CLSID_DP8SP-SERIAL 非modem电缆连接 CLSID_DP8SP_TCPIP TCP/IP连接 DirectPlay地址 3.设置地址对象中的组件 当创建一个地址时,可指定不同的组件并将它们添加到地址中。 本质上,DPlay地址只是一个包含数值对?的字符串,例如: x_directplay:/provider=%7BEBFE7BAO-628D-LLD2-AEOF- 006
您可能关注的文档
- 2018年对口升学考试句式变换专题复习.ppt
- 2018届高三一轮复习政治生活第二课我国公民的政治参与2016年高考真题.ppt
- 2018年高考地理大一轮复习第六章人口的变化第15讲人口的空间变化知能训练达标检测课件.ppt
- 2018年高考地理通用版二轮专题复习练酷课件第四部分高考倒计时第5天.ppt
- 2018年企业工作与管理流程标准化-非常实用.ppt
- Access2010:第5章窗体2010.ppt
- Amazon云计算平台及实现技术AWS.ppt
- android源码系统框架、系统应用开发流程.ppt
- AU30专业教程第5章单轨界面后期音频剪辑.ppt
- AutoCAD三维实体创建的基本方法.ppt
- 2024-2030年中国光纤激光钻孔行业市场发展趋势与前景展望战略研究报告.docx
- 2024-2030年中国光敏器件行业深度调研及投资前景预测研究报告.docx
- 2024-2030年中国光传输网络(OTN)设备行业发展动态与未来前景预测报告.docx
- 2024-2030年中国光伏胶膜市场全景调研及战略规划投资可行性研究报告.docx
- 2024-2030年中国儿童护脊书包行业营销态势与竞争格局分析报告.docx
- 2024-2030年中国光伏电池用靶材市场营销趋势及未来前景调研研究报告.docx
- 2024-2030年中国光电式传感器行业竞争优势及营销发展趋势研究报告.docx
- 2024-2030年中国光电装备行业市场发展分析及发展前景与投资战略研究报告.docx
- 2024-2030年中国光热发电行业竞争规划与投资前景可行性建议研究报告.docx
- 2024-2030年中国光电市场深度调研及未来应用趋势预测研究报告.docx
文档评论(0)