我正在构建一个客户端/服务器模型,但使用套接字、使用命名管道和 mkfifo()。
客户端将输出写入名称管道,我使用以下命令读取服务器中的输入:
while ((n = read(fd_in, &newChar, 1)) == 1) { /* ... */ }
我一次读一个字符,直到遇到两个字符:<'CR'><'LF'>。我想以这样一种方式制作我的代码,如果客户端在一段时间后没有以 <'CR'><'LF'> 终止,我可以丢弃它并继续到另一个客户端,否则下一个客户端将拥有等待,也许是无限的。
有没有办法终止 read() 的执行?如果2秒内没有返回,我可以说中断读取并丢弃之前读取的字符,然后重新开始读取好吗?
谢谢您的帮助,
杰里