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 awdl0
.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
./proxawdl
and start the TCP server listening on localhost
, e.g., iperf -s -p 22222
.
On the client, run
./proxawdl client
and start the TCP client connecting to localhost
, e.g., 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)