The project involves the development of a messaging application that registered users can use to communicate with each other over the Internet using TCP (a reliable data transfer protocol) and socket programming in c. These users can be using the same computer or be on different computers. An analog can be made to the basic function of yahoo or msn messenger.
Server: |
This application needs to be running on a single computer connected to the Internet to fulfil its very vital role of serving the client messaging applications connected to it. Its tasks include:
|
---|---|
Client: | These are the messaging applications that users use to communicate with each other over the Internet (with the help of the server). |
For 2 or more users to converse with each other, they must be:
Here is what the messaging application allows the user to do:
LOGIN: | An user must login to the server using a username/password combination to speak with other online users. The user must also specify the location of the server, identified by the computer's global IP address and the port the server is listening on. |
---|---|
QRY: | find out which users are online (logged in to the server) and which sessions they are part of |
QRYME: | find out which sessions you are part of |
NEWCONF: | to create a new session (that you will also join) |
JOIN: | to join a session that already exists |
LEAVE: | to leave a session you are part of |
LOGOUT: | kicks you out of all sessions that you are part of and disconnects you from the server |
MSG: | to send a message to a session and therefore to all members who are part of that session |
LS: | lists all the commands available and how to use them |
QUIT: | logs out the user (if logged in) and exits from the application |
The project was originally developed in Linux (the c source code compiled using gcc) but was soon ported to Windows as well (compiled using Cygwin). You can download the executable files below based on the system you have. The Windows version will work on XP, Vista and Win7 and probably others.