Develop a client/server chat program.
There are 3 components to this program. Two executables and one web service.
1. The Client: Receives and sends text messages from the Relay
2. Relay: The relay is a message transfer web service hosted on a windows server.
3. The Master: Receives and sends text messages from the Relay
The master and the client(s) never communicate directly, they only communicate via the Relay.
There may be one or more Clients "on-line" at any given time. Each client is installed on a separate
machine. There will be only master however.
All communications must be via https.
Details of the message packet exchanged.
---------------------------------------
1. Each message packet should have two data fields within it in addition to whatever control fields are
required. They are
messageData length upto 64k characters
messageType length 1 character ('M'= short messages, 'T'=long messages,'S'=status messages)
Details of Client (features)
--------------------------------
1. Automatically registers with the Relay upon startup using a pre-shared key. (i.e indicate that client
is on-line).
2. Assume internet connection is unstable and disconnects are frequent. Client should automatically re-
register with relay if disconnected
3. Receives messages from Relay.
4. Send messages to relay.
5. Maintains an outgoing message queue and an incoming message queue.
6. Has a text box where user can enter messages (or paste messages of upto 64k) and click a send button.
The Send button should put the message in the outbound queue before it is sent to the relay. Once it is
delivered to the Relay the message should be deleted from local queue.
7. All messages in the inbound and outbound queue must be encrypted.
8. Messages must be sent and received in the queue order (first in first Out basis)
9. A user activated "diag" mode should be provided which when activated should output received and sent
messages to a text box.
10. GetClientInfo() function: this function should retrieve machine details on which the Client is
running. Details such as Computer name, IP address, Operating System, and Local time.
Details of Master
---------------------
1. Should have a list box that shows the on-line clients.
2. Facility to choose which client to send the message to. The Master can communicate with more than one
Clients.
3. Maintain a list of messages received
4. Maintain a list of messages sent
5. Download and remove messages from Relay and store locally on Master.
6. Messages stored in Master should be in decrypted plain text format
7. RetrieveClientInfo() function: retrieve the client details by calling the GetClientInfo() function of
the client.
Details of Relay
----------------
1. Hosted on windows server
2. Should keep a message queue for relayed messages, and remove them once Master or Client has retrieved
it.
3. Should not have ability to decrypt/inspect the messages being relayed.
4. Ability to register the Clients and keep a list of online clients
Hints
--------
The following links may be of help for this project:
[login to view URL]
[login to view URL]
Requirements:
1. Use C#. .net framework 2.0 (or you can suggest?)
2. Client and Master are windows form based projects.
3. deliver source and executables and installation instructions
4. host and demonstrate feature completeness
Hello,
I am experienced in C# .NET framework 2.0 to 4.0, have worked with .NET Remoting and various other client/server communication methods(direct TCP sockets, HTTP/HTTPS web server middle-man etc...) and I am confident I can complete this project to your satisfaction.
Upon request I can provide a simple demo outlining the Client(UI), Relay(console/service) and Master(UI) implementation with simplified functionality.
Thank you,
John
Good day,
i have several experiences with Windows services, windows applications, implementing chatting programs and networking. I am ready to work on this project and I am looking forward working for you.
Looking forward hearing from you,
Have a nice day.
Hello, I created a number of project based on .NET Remoting and WCF, I'm ready to deliver a solid professional solution according to your requirements. Please consider my bid. Regards Stepan
Hello. I have experience in C# .Net, WCF, Remoting programming and client/server programming. A similiar project has just done by using Web Service. I can ensure you that I can finish this project with your needs fullfilled. Eric