Hey guys, I have a problem with a game me and a friend are creating... We have just set up a Server and Client through the use of Sockets... My friend (at an external location to me) can connect to my server when I forward the port we choose (in our case Port 3000). If the port is not forwarded however he can no longer connect, this will be no good when we eventually deploy our application. My question is simply, how can he connect to my external IP on a given port without me having to forward ports on my router?

Many thanks

He should know your IP through configuration settings, and ports he could random port number and try to connect if failed generate another one.

Simple answer is unless your PC has an externally visible IP, you will need to use port forwarding.

commented: Not just this post for which you provided the only answer, but I keep seeing you make constructive posts elsewhere as well. +2

Simple answer is unless your PC has an externally visible IP, you will need to use port forwarding.

My friend connects to the External IP address, and gives a port number in his C# application (e.g. 77.52.xx.xx:3000) and this only works when the Port 3000 is forwarded to the Internal IP address (e.g 192.168.x.xxx) on the computers.

Thanks for the suggestions

Which is what I said, unless your PC has a direct IP on the internet, you would need to use port forwarding on the router.