Como usar o GCDAsyncUdpSocket para multicast por wifi e bluetooth
Atualmente, estou usando o GCDAsyncUdpSocket para enviar datagramas multicast por wifi entre dispositivos iOS.
O código é bem simples
Cliente
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];
Servidor
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];
Isso funciona bem em wi-fi. Como faço para que isso funcione através do bluetooth também? Eu pesquisei um monte e não consigo encontrar nada ... Preciso criar dois soquetes separados? Um ligado à interface wifi e outro à interface bluetooth?
EDIT: ou estou confuso sobre algo fundamental? Isso deve ser possível. A GKSession do GameKit faz exatamente isso, certo?