Either you can use ports that the firewall has open, or you can have the ports opened for you, but this requires a manual process to be performed by the users.

Not everybody has a firewall, and not many of them are configured the same way.

You can't know in advance how the firewall is set up, so it's best to use open ports, or have a method to try a port, and select alternates if one is blocked.


msn does this with the messanger that allows it to do all sorts of things despite a closed firewall.