Hi,
we've been exploring iOS/Mac networking stack recently, and we found out there were interesting stuff but also limitations.
It looks like Apple devices are not compatible with Wifi-Direct, where devices can talk to each other without being connected to the same network. But they do provide similar functionality through Bonjour (NSNetService Advertiser/Browser) networking, Multipeer Connectivity framework and Game Kit. All these only work with Apple devices, you can't establish such connection with Android device for instance.
Of these APIs, Bonjour is the one where we get more control on the connection, but has its own limitations. You can't establish the connection yourself, you must use the input/output streams provided by the framework. This, in particular, also means you can't make a UDP connection between 2 devices, as you have to use the TCP one established by the framework. That also rules out networking APIs (GCDAsyncSocket, etc.) that expect to start the connection themselves.
Another problem is that Wifi-Direct appears to be more and more common lately, Android, Raspberry PI, etc. This makes it hard to integrate iPhones in workflows that other platforms support and the various applications it enables.
Is this analysis correct & in accordance to the current networking situation on Apple devices? Can we expect that Wifi-Direct will be provided at some point? Or at least more control in the way we establish direct connections between devices (UDP)?
Thanks!