第十五章:多人游戏要点.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
gameServerConnection.delegate = nil; isFullyConnected = NO; } - (void)dealloc { self.gameServerConnection = nil; [super dealloc]; } @end 分析:在startWithConnection:playerName:方法中,首先用Connection对象和玩家名称对控制器进行初始化。为了让服务器正确地维护参与者列表,每个客户端在连接时都要自我介绍。因此,我们约定在发送的第一条信息中要包含 handshake键,将其值设置为玩家的名称。 另外在实现游戏的服务器中,请学生自动动手参考本书,编写服务器代码和功能的实现(提供源码参考)。 实现通信 第十五章:多人游戏 中锐教育研究院 学习目标 创建连接 套接字服务器 实现游戏客户端 连接对象和流对象的简介 一个连接就是一个对象,允许我们通过网络和其他参与者进行双向数据交换。 通过套接字和其他实体之间的配对,使用的技术就是流,一个流就是一个对象,而这个对象可以单方向地传输数据,确保从一端发送的数据能够在另一端按照相同地输入顺序输出。 流有两种流: 一种是:可以从输入流读取数据(NSInputStream)。 一种是:可以向输出流写入数据(NSOutputStream)。 在iOS开发中,要想实现双向数据的交换,则需要一个输入流和一个输出流。 以下是用于传输流的Connection.h文件。 #import Foundation/Foundation.h @class Connection; @protocol ConnectionDelegate - (void)connectionClosed:(Connection*)connection; @end @interface Connection : NSObject { 连接对象和流对象的简介 NSInputStream *inputStream; NSMutableData *incomingDataBuffer; int nextMessageSize; BOOL outputStreamWasOpened; NSOutputStream *outputStream; NSMutableData *outgoingDataBuffer; idConnectionDelegate delegate; id userInfo; } @property (nonatomic, retain) NSInputStream *inputStream; @property (nonatomic, retain) NSOutputStream *outputStream; @property (nonatomic, retain) idConnectionDelegate delegate; @property (nonatomic, retain) id userInfo; - (id)initWithNativeSocketHandle:(CFSocketNativeHandle)nativeSocketHandle; - (id)initWithInputStream:(NSInputStream*)istr outputStream:(NSOutputStream*)ostr; - (BOOL)connect; - (void)close; @end 文件流分为5个部分:初始化、关闭和清理、读取数据、写入数据以及处理流事件。 连接初始化 以下是Connection.m文件的初始化部分: ? #import Connection.h #import CFNetwork/CFSocketStream.h @implementation Connection @synthesize delegate, userInfo; @synthesize inputStream, outputStream; - (id)initWithNativeSocketHandle:(CFSocketNativeHandle)nativeSocketHandle { CFReadStreamRef readStream; CFWriteStreamRef writeStream; CFStreamCreatePairWithSocket(kCFAllocatorDefault, nativeSocketHandle, readStream, writeStream);

文档评论(0)

三四五 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档