My server is on the public internet (so incoming connections should not be a problem.) I use UDP as my protocol. Two clients, one NATed behind a router, the other one doesn't use router but use ADSL dial up. Both clients have firewall turned off. When sending packets to the server, the strangest thing happened. The one NATed can send and receive from the server, but the one exposed to the public cannot.
You may think that it's the problem of firewall still. But let me tell you the much stranger thing. The second client, if wanted to connect, must enable "Internet Connection Sharing" from Control Panel, by that way it works. But as you know, I cannot call each and every one to manually open that because that will give a lot of troubles.
After searching through the notes all i can know is that when "Internet Connection Sharing" enabled, the IP of that computer turned from a end node to a router ip (i.e. 192.168.0.1), by that way the server and this client can work.
Anyone have any experience about it? This problem never happens on Mac i think.
Or in general does anyone have any experience with UDP programming? I don't need the fancy p2p architecture, I can't even make the client-server architecture work. There are always more or less 1 type of computers that cannot interact with the server.