I'm a desktop programmer, but starting to move on to network programming.
The server IP, Protocol type (TCP, UDP or TCP&UDP) and port (which your application use it).
So as long as all my applications use the same port, they would be allowed through?
If you want to run your apps in parallel, then they can not use the same port.
(That is for the server apps, that is / The client app you do not worry about the port. It get's it automatically, and you will never notice)
Also before you come to port forwarding. The client app on your friends pc must know the IP that you have. And normally you have more than one.
1) Your router get's an IP from the Internet provider you use. This IP of the router is a public IP, to which you friend can connect.
2) Your PC gets a private IP (usually 192.xx.xx.xx), that your friend can never see. Only your router can see that.
That is why you tell your router to forward stuff.
Problem is that the public IP that your router has can change. (Some provider offer you a static IP for extra money).
It is easier to use something like dyndns. Many routers have buid in support for that.
The port forwarding depends a lot on your router.
Some router you can give a name to your PC, and tell the router to:
- listen to port XX
- forward to port ZZ on "name/device" (ZZ can be equal to XX)
With other routers you must specify an IP (instead of a named device).
Then it is better to configure your PC with a fixed IP, instead of using DHCP
- If you need help on this, you need: your routers internal IP, the netmask, and the DHCP range. From that people can tell you what to set up on your PC