蓝牙通讯
2015-08-11 21:21
204 查看
使用GameKit框架,可以在游戏中增加对等连接,又称对端连接或点对点连接,Peer
To Peer。
使用GameKit框架中的对等网络连接API,可以在游戏玩家之间建立一个对等网络,并在游戏/应用实例之间交换数据。
GameKit框架可以使用蓝牙在玩家之间创建网络,玩家甚至不需要连接到互联网,就可以彼此对战。
1. 为玩家双方呈现一个GKPeerPickerController,提供了一个标准的用户界面连接两台设备
2. ViewControoler遵循GKPeerPickerControllerDelegate协议,处理来自GKPeerPickerController(对端选择器)的信息
3. 建立连接后,使用GKSession类可以向对端设备发送数据
4. 在receiveData:fromPeer:inSession:context代理方法中编写代码来处理接收到的数据
演练目标:通过蓝牙彼此发送照片
演练步骤:
1. 基于照片选择项目进行扩展,仅从照片库选择照片
2. 添加GameKit框架
3. 创建对等连接
3.1 实例化对端选择器
3.2 设置代理,并遵循协议
3.3 显示对端选择器
4. 连接建立代理方法
peerPickerController:didConnectPeer:toSession:
4.1记录对端连接会话
4.2 设置数据接收处理
4.3 关闭对端选择器
发送数据方法
[_peerSession
sendDataToAllPeers:data withDataMode:GKSendDataReliable
error:&error];
接收数据方法
- (void)receiveData:(NSData *)data fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context;
如果要通过网络发送自定义对象,需要使用NSKeyedArchiver方法归档自定义对象,然后再发送归档后的NSData
自定义对象需要遵从NSCoding协议,并实现相应的归档和恢复方法
接收端接收到数据之后,使用NSKeyedUnarchiver方法恢复数据
To Peer。
使用GameKit框架中的对等网络连接API,可以在游戏玩家之间建立一个对等网络,并在游戏/应用实例之间交换数据。
GameKit框架可以使用蓝牙在玩家之间创建网络,玩家甚至不需要连接到互联网,就可以彼此对战。
1. 为玩家双方呈现一个GKPeerPickerController,提供了一个标准的用户界面连接两台设备
2. ViewControoler遵循GKPeerPickerControllerDelegate协议,处理来自GKPeerPickerController(对端选择器)的信息
3. 建立连接后,使用GKSession类可以向对端设备发送数据
4. 在receiveData:fromPeer:inSession:context代理方法中编写代码来处理接收到的数据
演练目标:通过蓝牙彼此发送照片
演练步骤:
1. 基于照片选择项目进行扩展,仅从照片库选择照片
2. 添加GameKit框架
3. 创建对等连接
3.1 实例化对端选择器
3.2 设置代理,并遵循协议
3.3 显示对端选择器
4. 连接建立代理方法
peerPickerController:didConnectPeer:toSession:
4.1记录对端连接会话
4.2 设置数据接收处理
4.3 关闭对端选择器
发送数据方法
[_peerSession
sendDataToAllPeers:data withDataMode:GKSendDataReliable
error:&error];
接收数据方法
- (void)receiveData:(NSData *)data fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context;
如果要通过网络发送自定义对象,需要使用NSKeyedArchiver方法归档自定义对象,然后再发送归档后的NSData
自定义对象需要遵从NSCoding协议,并实现相应的归档和恢复方法
接收端接收到数据之后,使用NSKeyedUnarchiver方法恢复数据
相关文章推荐
- Codeforces Round #315 (Div. 2) C. Primes or Palindromes? (打表枚举)
- 神一般的人物-架构师
- GDOI2016模拟8.10踢足球
- struts2学习笔记(八)国际化
- 使用MATLAB贝叶斯工具箱(BNT),进行吉布斯采样(Gibbs Sampling)之前需要做的编译工作
- SET IDENTITY_INSERT ON 插入数据 指定 主键
- 干净精简的小说朗读软件
- Mahjong tree (hdu 5379 dfs)
- hdu 5375 Gray code
- 每日一练--实现indexof(String s1,String s2)
- Data Visualization 课程 笔记1
- linux/unix网络编程之 poll
- ThinkPHP函数详解:C方法
- hdu 1863 畅通工程
- 如何使用strace+pstack利器分析程序性能
- UVA - 208 Firetruck
- 杭电 1233 还是畅通工程(克鲁斯卡尔)
- C++的重载,覆盖,隐藏
- 动态规划 之 旅行商问题 TVP
- 渗透(龙帝)