c - 为接收函数设置套接字超时

标签 c tcp ipc wait

我有一个客户端服务器连接,客户端正在向服务器发送数据。

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/

相关文章:

c - 在三元运算中设置 2 个值 - C

windows - 用于查找监听端口的服务和网站的脚本

tcp - 在Tokio中使用TcpStream读取碎片化的TCP数据包

linux - 如何在 zmq(本地套接字)中获取调用者 pid

c - 如何使用c删除csv文件的两个逗号

c - 系统调用进行中

C语言中客户端和服务器如何保持通信

python - 无法嗅探以太网类型 0x0102 自定义数据包

linux - 如何在 PF_UNIX 套接字的服务器端打印客户端 sun_paths 名称?

客户端-服务器 ipc 消息 2 管道通信简单示例