Project: Chat Room and IM Server
After finishing 15-213, I tried to use my network programming skills to do something useful. But I couldn't. Instead I came up with something that we've all seen and probably all used before: a chat room and instant messaging service.
Why? Before writing proxy lab I had no network programming experience, and I felt that since now I did I could write any sort of network program from a multi-player game to an over-the-net parallel processing program. In any such network application, an essential component is the communciation between two computers. Before I could do anything else, I needed to write a simple client-server application which would faciliate message passing between computers. So I wrote a chat room.
I had learned C# over the summer and now had a license to VS 2008, so I decided to write the client-side in VC#. The server, however, was just one big modification of my proxy lab. I accepted socket connections, closed socket connections, and wrote data across the net in exactly the same way (using almost the exact same code) as I had in the lab; what I was writing was pretty much the only thing that changed.
Unlike all of my Java Applications, this project compiled directly into a Windows Executable which makes it easy to share. However, the backend server needs to be running for the chat server to work. If you're interested in trying it out download the executable and send me an email so I can run the backend server or fill out the form at the bottom of the page.
Finishing this project was extremely satisfying, and what's more is that if I ever do make a multiplayer game using .NET, I'll have a half-decent chat room for free. So if you ever get tired of AIM or Facebook Chat, let me know and I'll be happy to share this one.