Tunnels a regular TCP connection (e.g.,
iperf) through an AWDL link by exploiting the NetService API.
Workaround because Apple prevents regular sockets from listening or connecting to As an alternative, there is a special XNU socket option
SO_RECV_ANYIF to allow sending/receiving via AWDL:
#define SO_RECV_ANYIF 0x1104 /* unrestricted inbound processing */
Frist compile with Xcode.
Then, on the server, run
and start the TCP server listening on
iperf -s -p 22222.
On the client, run
and start the TCP client connecting to
iperf -c -p 22222.
hardcoded TCP ports
does not multiplex TCP connections which means that applications using multiple TCP connections will probably not function properly
- Milan Stute, David Kreitschmann, and Matthias Hollick. One Billion Apples’ Secret Sauce: Recipe for the Apple Wireless Direct Link Ad hoc Protocol. In The 24th Annual International Conference on Mobile Computing and Networking (MobiCom ’18), October–November 2018, New Delhi, India. DOI.
- CocoaAsyncSocket to handle local TCP connections (as static dependency)