Server: char request[RequestSize]; char reply[ReplySize]; FileDescriptor clientInput[NumClients]; FileDescriptor clientOutput[NumClients]; // Loop waiting for a request from any client. while (fd = select(clientInput, NumClients) { // Read incoming command from a specific client. read(clientInput[fd], request, RequestSize); // Do operation. // Send result. write(clientOutput[fd], reply, ReplySize); }