Hello, I was just thinking about the way Sockets and Ports work. For a client to connect to a server the correct ports on that server have to be open for data to be sent from the client and received on the server. If I were to write a chat application then on each computer that has my chat appliation installed they would have both a server and a client. Or they could have a client each and then on one of my computers I would have the central server. So my question is, how are applications like MSN, Skype and AIM able to communicate with other MSN, Skype and AIM accounts (send/receive) without opening a port in the user's home router. When I installed Skype I did not have to open any specific ports, it just started working automatically.