﻿LAN Messenger:
I will make 2 components  one is server and other is client.

Server:
It will have a GUI interface (using GTK programming). 
First it will have a GTK entry for port number and a "listen" button. (we have to 
enter the port number through which it has to listen on)
Then it will create a socket which is like a sort of door that listens for some client.

If the connection is successfully created,  i create a textbox on the left hand side for showing all 
the messages being sent by all connected clients with their nicks..
and a list on the right hand side .. for showing all the connected clients..

Here i disable the editable option for the textbox as it is used for only viewing the messages..

Client:
It will also have a GUI interface (using GTK programming).
First it will hav three GTK entries one for IPAddress, one for NickName and other for port number to connect to and a "connect" button.
Then it will connect to the server using sockets.

If the connection is successfully created. i create a text box on LHS for viewing messages sent by all
other clients and list on RHS for showing all the connected clients..

Here also i disable the editable option for the textbox.

I add an GTKentry below the textbox for creating and sending the message to all other clients... (which can be viewed
by all other clients.. and server also.. (similar to DC++ chat).

Some More Points:
When a message is sent, the server logs the following information in the database
Client Nick, Client IP Address, timestamp, Message and ID.

When Client is trying to connect to the server which alredy has the same nick the connection fails with message
Nick already exists.

When Some client closes his messenger, All other clients and server will see appripriate message in the text box present
in the LHS.

The Topics Covered in this project are.
1. GTK programming for GUI
2. TCP/UDP socket progrmmaing for connection and communication between client and server
3. databases for storing the message logs..

NOTE: 
The template may change slightly if i find better GTk Widgets while doing the project.. if there are changes i will be informing  during the project.  

ThankYou.	
