A Note About IM Applications
Most IM applications that are around nowadays rely on a server/client approach. That is, you log into a server, and messages you send are sent to the server, which in turn routes them to their intended destinations. The server acts as the middleman. There are some advantages to doing it this way, although there are some disadvantages as well.
The application we will build here is completely peer-to-peer (P2P), so it doesn't rely at all on a server. Rather, you connect directly to another user, and messages are not sent anywhere other than where they're supposed to go. This provides some added security, and much flexibility (but may not be so great for corporations that want to build up a registered database of IM users; that is, AOL or MSN).