現在、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でうまく機能します。Bluetoothでも動作させるにはどうすればよいですか?たくさんグーグルで検索しましたが、何も見つかりません... 2つの別々のソケットを作成する必要がありますか?1つはwifiインターフェースにバインドされ、もう1つはbluetoothインターフェースにバインドされていますか?
編集:または私は何か基本的なことについて混乱していますか?これは可能でなければなりません。GameKitのGKSessionはまさにこれを行いますよね?