If you are having connection/port problems read this...
For each port there are two types Incoming & outgoing
If you port forward it means that port will ALWAYS be forwarded to the static port you set 24/7 and will ALWAYS be open 24/7 until you delete the forwarding map. Additionally if your router uses DHCP you might not get the static internal IP address that you've forwarded the data to, in which case you end up forwarding all the data into a black hole.
outgoing : When you allow data/port forwarding outgoing rights it means you are allowing the data that originates from you out and back on the same TCP connection. People trying to connect to you will be blocked but you can connect to them.
Incoming : When you host you want your PC and Router to allow incoming data/connections from other people so you have to allow incoming connections on the port that the program is listening for in order for people to be able to connect to you.
How is this used?
In order for someone to connect to you while you are hosting the following must be able to occur.
1) You must be hosting and your PC must be allowing both incoming and outgoing connections for the ports that the game needs. You can port forward every know port to man on your router but if your PC is not allowing incoming connections on that port it will drop all traffic on that port that didn't originate from you into a big black hole.
2) Your router must be allowing incoming and outgoing connections for the ports in use. Usually if your PC firewall allows a port it sends update packets to your router and it's NAT will automatically open and close the port as it goes in and out of use.
3) When someone tries to join you they must make an incoming connection to your router and then an incoming connection to your PC.
So what can you do?
The hard way (Not recommended) : Manually set your advanced firewall incoming and outgoing connections and portforward your router ports.
The easy way : Get a free software firewall like zone alarm or Comodo that allows you to just check the tick boxes to allow incoming and outgoing connections.
Depending on your router and how strict it's security is it will either automatically open the ports based on packets from your pc or it may still need additional portforwarding but then atleast your PC will accept the incoming data instead of dropping it.