On the iPhone, I run an application with the AsyncUdpSocket library to take care of the UDP network. I checked it out. I can send a UDP packet from my iPhone to a server running a Java program that accepts UDP correctly.
However, when the opposite is true, the UDP message from the Java program does not reach the iPhone. So I decided to check the library to see if it can send / receive its own UDP packets or not use 127.0.0.1 on the iPhone, and as a result it works.
So I was wondering if UDP packets were being sent or not, so I used Wireshark to see my network activity.

Direct link to image above: http://img46.imageshack.us/img46/7939/screenshot20100220at110.png
In the iPhone program, I tell my UDP program to connect to 192.168.99.11, which is my MacBook, through port 55555. The Java UDP program on my Macbook says that the remote ip for the connection is 192.168.99.13 (my iPhone) on port 55555.
On Wireshark, I see ICMP telling me that the destination and port are not accessible from the iPhone.
So does anyone know why iPhone blocks UDP packets? Or am I missing something?
source share