Because ncat starts a new process for each client, we can use the process ID as the identifier. The web server implements We could have also specified the server's normal nonloopback IP address. Read from and write to the stream according to the server's protocol. Our choice of the TCP port number is based on Figure 2.
The server reads the line from its network input and echoes the line back to the client. We call printf here as a diagnostic tool to see when the child terminates.
Example 5: Improved chat server This version of the chat server has an identifier for each participant, so people can have conversations. Throughout this text, we will use the signal function from the above definition.
Async on a socket triggers a kernel transition to reach the network stack. The signal handler returns. It should be greater than we do not need a reserved portgreater than to avoid conflict with the ephemeral ports allocated by many Berkeley-derived implementationsless than to avoid conflict with the "correct" range of ephemeral portsand it should not conflict with any registered port.
Since the signal was caught by the parent while the parent was blocked in a slow system call acceptthe kernel causes the accept to return an error of EINTR interrupted system call.