Question
NOTE: Please, the code will be used for Windows not Lnux or another An on-line Chat System via Network Programming: In this project, you willdevelop
NOTE: Please, the code will be used for Windows not Lnux or another
An on-line Chat System via Network Programming: In this project, you willdevelop a simple online chat system using sockets in the C programming language. The systemwill consist of 2 modules:- Client module- Server moduleUsers should be able to send chat messages to each other in plain text using the client module.The server module will mediate the transmission and storage of messages. The server must beable to support multiple users to connect and send messages to each other at the same time. Thisassignment is similar to Question 4 in assignment 3, hence you can reuse the codes you havewritten previously; but with one important difference:If the receiver is online at the time of sending the message (connected to the server viasocket and logged in), the server should immediately forward the message to the receiverwithout waiting. The client, on the other hand, should be able to instantly display themessages that spontaneously come from the server, on the screen.For outgoing and incoming messages, some additional information should also be displayed; i.e.,for outgoing messages to whom it was destined to, and for incoming messages, the time ofreceiving the message and from whom it came should be displayed. For example, the screen flowafter a user starts the client, connects to the server, and logs in might look like this:Session StartedYou have no waiting messagesMessage sent to ali: Hello Ali, how are you?21:55:04-ali: thank you.If the recipient is offline, the server should store the message for later transmission. Storage ofthe messages need not be permanent; so you don't need to store messages in a permanent placelike a disk or database. There is no harm in deleting messages when the server application isshutdown and started again. Therefore, you can store pending messages in a suitable datastructure in memory.Initially the server must be up and running. Clients can connect, log-in and disconnect atdifferent times. The clients will always send the messages and initiate the dialog, while the server
will reply to the client appropriately. The client should display messages from other users on itsscreen, not server responses to his outgoing protocol message (except maybe the first responsemessage upon initial login).The protocol of the chat system will consist of the following messages (the same protocol as inthe 3rd Assignment 4th question, with the only difference that there is no POP_MESSAGEprotocol message in this protocol):BEGIN_SESSION
Submissions and the Grading Specifications:1. Report (60%): The reports should be uploaded to Blackboard no later thanJanuary 8 midnight (23:59). Your reports shall contain at least the following threecomponents:a. A design guide (30%): start by a short introduction, followed byexplanation of your design and implementation (data structures used, howdid you implement the requirements stated above, etc.). Give reasons foryour design and implementation choices. There should be enough detailsin your report to explain everything. There is no such criteria as theminimum page count, its up to you to decide on how many pages youneed to explain things.b. A user manual including examples and screenshots (20%). You shouldinclude a screenshot of a sample run and its results for each and everycommand.c. All your code, supported with in-line comments (10%).2. Demo (40%). We are going to arrange proper time, and you are going to beasked to show off your project running. The demonstration will be done on-linevia a Zoom connection. You might also be asked questions about the specificdetails about your project, and codes also, during the demo session.Demonstration will be done as a group. Demonstrations will be held after theprojects are submitted, and before the final exam. Specific dates will beannounced later.
An on-line Chat System via Network Programming: In this project, you will develop a simple online chat system using sockets in the C programming language. The system will consist of 2 modules: - Client module - Server module Users should be able to send chat messages to each other in plain text using the client module. The server module will mediate the transmission and storage of messages. The server must be able to support multiple users to connect and send messages to each other at the same time. This assignment is similar to Question 4 in assignment 3, hence you can reuse the codes you have written previously; but with one important difference: If the receiver is online at the time of sending the message (connected to the server via socket and logged in), the server should immediately forward the message to the receiver without waiting. The client, on the other hand, should be able to instantly display the messages that spontaneously come from the server, on the screen. For outgoing and incoming messages, some additional information should also be displayed; i.e., for outgoing messages to whom it was destined to, and for incoming messages, the time of receiving the message and from whom it came should be displayed. For example, the screen flow after a user starts the client, connects to the server, and logs in might look like this: Session Started You have no waiting messages Message sent to ali: Hello Ali, how are you? 21:55:04-ali: thank you. If the recipient is offline, the server should store the message for later transmission. Storage of the messages need not be permanent; so you don't need to store messages in a permanent place like a disk or database. There is no harm in deleting messages when the server application is shutdown and started again. Therefore, you can store pending messages in a suitable data structure in memory. Initially the server must be up and running. Clients can connect, log-in and disconnect at different times. The clients will always send the messages and initiate the dialog, while the server
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started