fork()客户端以实现无阻塞IO

时间:2018-08-23 11:01:35

标签: c sockets

我想实现一个具有非阻塞I / O的客户端套接字。

即终端中的单个客户端将在收到来自stdin的命令后将fork(),然后该子客户端将连接到fork()的服务器子级,处理请求,获得输出,然后以某种方式将输出返回到终端的父客户。

我目前已经实现了除了客户端的fork()之外的所有操作,因为我不知道如何将子客户端的输出返回给父客户端以便可以显示它们。

我该怎么做?我认为基本结构是:

if ((childPID = fork()) == -1) {
    // Error
}
// Child process
else if (childPID == 0) {
    // send() to server
    // recv() from server 
    // format output
} 
// Parent process
else {
    // Display output of child clients if ready (?)
}

由于这将一次处理多个命令,因此我也不完全确定如何“等待”下一个输出。假设有一个子进程想要保留输出,直到用户按下“ enter”,然后我如何告诉其他子客户端等待显示自己的输出。

0 个答案:

没有答案