Develop? a c code which provide? an executable that will create a group of N server processes and M client processes. These clients and servers interact which other via sockets and pipes to provide a specific action.
## Deliverables
The project details are as follows:
* Provide an executable that will create a group of N server processes and M client processes.
* The group of N server processes are connected to each other in a ring via a series of pipes.
* Each server process can read data from the pipe joining it to the process on one side and write data to the pipe joining it to the processor on the opposite side, i.e. one way traffic around the ring.
* Each client process will connect to an arbitrary server process using a socket and send that server a "job" to be processed.
* On receipt of a job from a client process the receiving server will immediately send that job to the server next to it using the write pipe.
* A server receiving a job on its read pipe will either perform the required task and send the result directly back to the client, OR pass the task on to the next server in the ring.
* If a job returns to the server where it was originally sent, that server must perform the task and return the result to the client, i.e. jobs can only circle the ring of servers once.
* You will be required to have three executables, i) that will read in the number of servers and clients from the command line and be responsible for creating the required number of servers and clients ii) a server executable, iii) a client executable.