1

我使用 c++11 线程库和套接字。我为每个套接字创建线程。

void connect_server(...)
{
    //here socket (stream client) stuff with connecting, receiving and sending data
}

int main()
{
    //...
    for (...)
        container.push_back(std::thread(connect_server, params));

    for (...)
        thread.join();
    //...
}

如何检查连接是否超时?

4

1 回答 1

0

作为一种变体,您可以使用setsockopt()通过 SO_SNDTIMEO SO_RCVTIMEO 设置超时值。当超时过期后套接字解除阻塞时,您可以向主进程发送信号,只需完成子线程或其他任何内容。
这里有一个关于如何使用 select() 调用设置连接超时的小片段。

于 2013-11-06T21:57:29.673 回答