我目前正在使用 GCDAsyncUdpSocket 在 iOS 设备之间通过 wifi 发送多播数据报。
代码很简单..
客户
self.socket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
//omitted error checking
[self.socket bindToPort:12345 error:&err];
[self.socket joinMulticastGroup:@"224.0.1.1" error:&err];
[self.socket beginReceiving:&err];
服务器
self.multicastSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
NSData *d = [@"hello" dataUsingEncoding:NSUTF8StringEncoding];
[self.multicastSocket sendData:d toHost:@"224.0.1.1" port:12345 withTimeout:-1 tag:11];
这在 wifi 上运行良好。我如何使它也可以通过蓝牙工作?我用谷歌搜索了一堆,找不到任何东西......我需要创建两个单独的套接字吗?一个绑定wifi接口,一个绑定蓝牙接口?
编辑:或者我对一些基本的东西感到困惑?这一定是可能的。GameKit 的 GKSession 正是这样做的,对吧?