Question: Students develop their own simple short message server and client applications. The applications must be written in C/C++ in Linux Platform. Server application should operate

Students develop their own simple short message server and client applications. The applications must be written in C/C++ in Linux Platform. Server application should operate in concurrent mode. (So, application serve more than one user at a time) Dont use any special library for protocols when coding. Write your own functions if its necessary. Server should bind (listen) port that passed as argument. This port uses for command exchange and data transfer purpose. All data exchange should use TCP transport layer protocol for reliability. The server should be run as following arguments: # ./serverapplication -d directory -p port -u password -d: Specify running directory which messages to be accessed/modified/erased -p: Define server port number -u: User file that uses delimiter separated format which is delimiter is : (https://en.wikipedia.org/wiki/Delimiter-separated_values) For example, $ server -d /home/student/files -p 1888 -u user.txt File server listening on localhost port 1888 Message Server application should operate as defined below. Then client should authenticate itself with User Keyword. Given values must check from user file. If given values correct so client can pass next stage. USER UserID Password Possible Responses: +OK UserID and password okay go ahead. -ERR Either UserID or Password is wrong. After authentication clients can give following commands: LIST [num] This command can be used for listing user message that available in server. Num is optional. Possible Responses: +OK listing follows. Server list messages with date order. Format looks like; : Message number that can be used with RET and DEL commands. : This is represent who was send this message. : This is unix timestamp that starting 1970. : Message size as byte. Note: All message attributes should take from message filename. Please check SEND command. Example: 1 1001 1671483089 100 2 1005 1668891089 120 SEND UserID TXT This command can be used for sending text message (TXT) to given UserID. The sent message should store on the storage. While message TXT is sent to UserID in this case server must store this message with using following structure. Directory path should be Running directory/UserID Ex: Path=/data/home/20110500/server/10000 Each message should store into this directory with following structure: __.msg Ex: 1368479000_10001_100.msg This file format should be use in LIST command as well. Appropriate response codes should be implemented. 4) All sent message should store to running directory (which is defined as argument -d ). But each user should have their own subdirectory. 5) Server should also log all client activities like Authentication (Good and Bad attempts), Send message from to whom etc. 6) Client should get username and password from user and pass to Server side. 7) Following parts repre Client should have following features; a) Client should read all configuration parameters as arguments. # ./smsclient -h server -p port -u user -p password -h: Specify target server port -p: Define server port number that client will connect -u: Username that will be used in authentication -p: Password that will be used in authentication

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!