如果没有响应,C套接字会关闭连接

时间:2016-05-28 18:06:11

标签: c sockets timeout

我在等待客户响应方面遇到了一个小问题。代码如下所示:

    num_bytes_received = recv(recvFD, line, MAX_LINE_SIZE-1, 0);

    if(line[0] == 'R')
    {
        do_something();
    }

    if(line[0] == 'P')
    {
        do_another_thing();
    }

有没有简单的方法等待消息让我们说30秒如果没有消息就执行do_another_thing();功能?这不是连接问题的情况(如客户端断开连接等)。这是我想要创建的限制。

1 个答案:

答案 0 :(得分:2)

你可以使用select()和超时。

unsent_requests = []
for param in params: # assume params is a list containing different parameters or query strings
    unsent_requests.append(grequests.get(url = url, params = param))

responses = grequests.map(unsent)