Tuesday, December 06, 2005

 

Software Engineering Project

CISE Messenger

Here's a little intro to my software engineering project this year titled the CISE Messenger.It's a simple LAN-based messaging software meant for use in the CIS department (hence the name CISE) .. whether it is actually used for that purpose remains to be seen.

There are two major parts: the Server and the Client. The wonderful thing about it is that the server is multi-threaded i.e., the server can respond to a large number of connecting clients simultaneously rather than on a first-come first-serve basis as in a Single Threaded model. For those of you who don't know much about threading, click here for a nice and easy tutorial of sorts.

The server supports some basic IM operations like one-to-one text messaging, ability to change nicks etc. There is an audio conversation support too, using DirectPlay, but the code used for that is old and error-prone since the Voice classes have now been deemed obsolete by Microsoft so there's not much support about on the internet. Nevertheless, it works ... only just!

Here is a screenshot of the dummy Client logged on



The namespaces utilized were System.Net and System.Net.Sockets which provide classes for TcpListener(the server), TcpClient(the client) and Socket (for communication between two points) and ofcourse System.Threading for implementing threads.

This was my first dip into threading and it's not easy, you have to be very careful when handling threads and remember to close them and make sure no two threads work on the same objects at the same time .. etc. etc. It is pretty interesting, and I will develop it further later.

Comments:
neato!
 
Good Job - nifty software can be very useful for an office without internet connection
 
Great work. Did you consider using Udp instead of Tcp?
 
I did some reading regarding which protocol to use before starting the design and code stuff. For a small app, UDP would've been perfect it seems but if it were ever extended it'd need the features of TCP, so I decided to use TCP from the start.
 
Now we are gonna do the same thing but with modified functionality...and perhaps more features...
 

Post a Comment



<< Home