write a complete C application to support a client/server model using Linux sockets for a “messaging system” using the standard Linux system

Completed Posted 6 years ago Paid on delivery
Completed Paid on delivery

Write a complete C application to support a client/server model using Linux sockets for a “messaging system” using the standard Linux system.

- The messaging system should be designed to allow multiple clients (at least 3, up to a max of 4) to connect to one central server that receives and, Broadcast each client message or payload to the rest of participating clients.

- The server should be multi-threaded to boost its performance.

For instance, upon startup, the server should listen and wait for any client to connect to it. For each connected client, the server should:

- Acquire the client ID or screen-name via a simple handshake.

- The server will relay/broadcast any received message/payload from the client to the group of participating clients.

- The server will continue to “listen” for clients and run indefinitely until manually terminated (using, for example <CTRL-C>, or via user-defined means).

Whereas each client should connect to the server and then go into a loop. In this loop, the participating user should be able to type “message[text contents]”, “put [file]”, or “quit”.

- The first option should cause the client to send the message text contents to the server, which in turn will broadcast the received client message to all other participating clients stating that a certain clientsays: “the content of the text message”.

- Identifying each arriving message, on any client by its originating source client by its ID/screen-name.

- The second option should copy the file/payload (i.e., text file, image, video, etc.) from the local client to the server, which in turn will forward it to each participating client. Where, each participating client should have methods to listen for new inbound message and enter the group conversation as well.

- The third option exits the client, and

- he server should notify the group that the client (by its ID/screen-name) has left the chat.

Both client and server programs should run on the different systems. Where each client only need to know the IPs and ports to connect to and these programs should run in separate directories so that file operations can be tested.

The client should report an appropriate error message if the file/payload to share with the group does not exist, or if it cannot connect to the [login to view URL], the server should report to its last connected client if the server cannot find any other participating client or the connection has failed

C Programming

Project ID: #13920905

About the project

7 proposals Remote project Active 6 years ago

Awarded to:

kaloyan13

Hello, I am very good with threading and have done simillar network projects. Can finish your project in 1h. Thank you.

$30 USD in 1 day
(431 Reviews)
7.4

7 freelancers are bidding on average $63 for this job

Yknox

Hello I'm interesting your project very well I'm a Good C/C++, Java, Linux, Socket, Math, Algorithm expert. I m quite well experienced in these jobs. Let's go ahead with me I want to service for you continousl More

$55 USD in 1 day
(422 Reviews)
8.5
hbxfnzwpf

I am very proficient in c and c++. I have 16 years c++ developing experience now, and have worked for more than 7 years. My work is online game developing, and mainly focus on server side, using c++ under Linux environ More

$150 USD in 1 day
(155 Reviews)
7.1
wangzang

Hi. I am a developer with over 8 years experience. I have full experiences on Linux Socket. Please have a look on my profile. I hope a long time relationship so I will try my best. I am ready to start. best regar More

$100 USD in 1 day
(3 Reviews)
2.6
hariFREELANCER88

I have extensive knowledge on the socket programming , I have handled a similar kind of project for the ISRO (Indian satellite Reaserch organization). I can do this easily.

$30 USD in 3 days
(0 Reviews)
0.0
SofTechPEDIA

We've dedicated team of experts to deliver quality solution within your time frame. I can answer your queries on CHAT. Looking forward to work on your project.

$25 USD in 1 day
(0 Reviews)
0.0
korapatimanoj

A proposal has not yet been provided

$50 USD in 1 day
(0 Reviews)
0.0