0

我正在 iOS 上制作一款小型纸牌游戏。我正在使用 GameKit/GKsession 来处理我的网络数据传输。

我的问题是如何将多个信息“打包”到 NSData 并发送。当服务器接收到 NSData 时,如何解包并以正确的方式处理信息。

例如,我可以毫无问题地发送和接收 NSString。但是我的游戏有不同的数据类型需要发送和接收,例如 UIImage/NSString/NSArray/...

我在 SDK 中找到了示例项目 GKTank。但这对我来说真的很难理解。在我的猜测中,它定义了几种数据类型。

有人可以告诉我如何让服务器知道客户端正在发送什么样的数据(NSString?UIImage?)在这个方法中:

- (void)receiveData:(NSData *)data fromPeer:(NSString *)peer inSession:(GKSession *)session context:(void *)context
4

1 回答 1

0

你实际上在寻找两件事。

1) 困扰发送方和接收方理解的协议;

2)一种将对象“序列化”为提供给协议的数据类型并“反序列化”对象数据的方法。

对于 1,您有多种选择,例如 JSON、XML(基于字符串)和基于字节的协议,例如 Protocol Buffer。

对于 2,您有各种解析器,例如 SBJson、TBXML 和 protobuf,可帮助您对 (1) 中选择的协议进行编码和解码。

于 2012-07-11T05:34:38.253 回答