转https://www.jianshu.com/p/662dd49d82b6
Multipeer connectivity是一个使附近设备通过Wi-Fi网络、P2P Wi-Fi以及蓝牙个人局域网进行通信的框架。互相链接的节点可以安全地传递信息、流或是其他文件资源。
图片发自简书App
废话少说,我们来集成MultipeerConnectivity的功能。
首先引入系统框架
1 | #import <MultipeerConnectivity/MultipeerConnectivity.h> |
依次声明如下属性,这里都给予了详细的备注,就不赘述了。
1 | /** |
接下来我们将当前设备初始化,并开启附近用户搜索等功能。
1 | /** |
这里不要忘记添加其协议,如下
MCSessionDelegate,MCBrowserViewControllerDelegate,MCNearbyServiceBrowserDelegate。
最后实现其对应的代理方法即可
1 | #pragma MC相关代理方法 |
效果图如下
1_发现附近设备.png
2_连接设备成功.png
选定后点击Done即可完成连接。
代理方法中具有监听附近设备,连接,接收流程等流程。
对于发送数据,可以简单搭建一个页面来进行。比如在textField点击Return时触发。对于发送的数据类型具有两种形式,对应的即为socket中的UDP与TCP。
1 | - (BOOL)textFieldShouldReturn:(UITextField *)textField{ |
效果图
3_传输数据.jpeg
这里测试的话可以使用两台设备,模拟器、真机均可。当其中一个设备检测到附近设备后会弹起附近设备列表,点击选取后即可进行通讯操作。用例里模拟的是发送字符串操作,也可以替换为文件,因为都传递的为二进制嘛。相信你会察觉到其飞一样的速度的,就写到这里。