Implementing a synchronous parallel TCP server
A synchronous parallel TCP server is a part of a distributed application that satisfies the following criteria:
- Acts as a server in the client-server communication model
- Communicates with client applications over TCP protocol
- Uses I/O and control operations that block the thread of execution until the corresponding operation completes, or an error occurs
- May handle more than one client simultaneously
A typical synchronous parallel TCP server works according to the following algorithm:
- Allocate an acceptor socket and bind it to a particular TCP port.
- Run a loop until the server is stopped:
- Wait for the incoming connection request from a client
- Accept the client's connection request
- Spawn a thread of control and in the context of this thread:
- Wait for the request message from the client
- Read the request message
- Process the request
- Send a response message to the client
- Close the connection with the client and deallocate the socket
This recipe demonstrates...