- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Visual C++高级编程
使用DirectPlay和DirectShow
DirectPlay
要用DirectPlay
为开发网络型游戏而准备的网络函数库。
节约开发网络游戏的时间
平台的约束
网络拓扑
P2P(Peer to Peer)
没有服务器
速度快
客户机/服务器模式
所有的游戏电脑都与服务器进行通信
EX:联众、中游的网络游戏、即时聊天软件
网络(联机)游戏的组成
建立DirectPlay接口
列出DirectPlay服务提供者
建立游戏或加入游戏
列出游戏与玩家的名称
列出所有可进入的游戏
处理消息
传送与接收消息
结束联机
DirectPlay的使用方法
创建回调函数DirectPlayMesHandle来实现与游戏程序通信。它负责接收DirectPlay的消息。
选择服务提供者:
主要任务:接收得到系统可提供的服务(协议支持),利用EnumServiceProviders函数列举所有服务,其原型参照P376。
建立新的联机游戏
建立新的联机游戏
SetServerInfo或SetPeerInfo来设置玩家的名称和其他信息
使用HOST方法来建立一个新的联机
HOST方法的原型参见:P377-378
提供联机者的参数和整个网络的联机属性(游戏名称,最大容量人数,密码,通信协议等)
联机到游戏中
列出所有有效的游戏:
HRESULT EnumHosts.
玩家选择游戏,
使用SetClientInfo(SetPeerInfo)设置玩家的名称与信息
调用CONNECT方法将连接到游戏(服务器)
进入与中断游戏
接收与传送消息
Send方法的使用:传送数据到联机服务器端上
SendTo 使用:可以将数据传送到特定的主机
函数原型参见:P380
连接中断
CLOSE方法
范例程序:
DirectShow
DirectShow的架构:
过滤器技术的原理:将数据流作为输入,然后在该数据流上进行单一的操作,再将数据流输出。
DirectShow具有相当多的过滤器,它们可以组合一起进行运作。
DirectShow还具备过滤器管理组件。它用来实现对过滤器的管理,可以利用它实现播放特定文件的过滤器顺序。
文档评论(0)