我有一个客户端服务器连接,客户端正在向服务器发送数据。
while (1) {
bzero(buffer, 256);
sleep(1);
n = read(sock, buffer);
if(n < 0) error("ERROR reading from socket");
c = message[0];
//do something
}//close while loop
我只想等待读取发生几秒钟的问题 - 在我的代码中,如果客户端不发送任何内容,它就会卡住等待服务器读取某些内容。
请问我如何才能等待读取发生几秒钟?
最佳答案
如果您的套接字是非阻塞的,您可以使用 select功能。 如果您的套接字阻塞,您可以使用 setsockopt 设置读取超时功能。有关更多详细信息,请参阅此 stackoverflow 问题。 Linux: is there a read or recv from socket with timeout?
关于c - 为接收函数设置套接字超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44068549/