0

我正在尝试通过 c++ 中的套接字连接到计算机。基本上这段代码应该做的是尝试连接,如果无法连接,它应该等待 3 秒再试一次。

while (true) {
    if (connect(sock, (struct sockaddr *) &echoserver, sizeof(echoserver)) >= 0)
    {
        break;
    }
    cout << "Connection failed!";
    sleep(3);
}

代码在运行时所做的是,如果可以连接,它将连接,但如果不能,则cout永远不会调用,sleep也永远不会调用。当sleep不存在时,程序会工作并不断尝试连接到套接字,但没有延迟,因此无论如何它都不会连接。我真的需要延迟工作。

有人可以帮忙吗?

4

1 回答 1

4

一旦connect失败,套接字指的是失败的连接。你不能再用它来连接任何东西。您需要close现有的套接字并分配一个新的。cout如果您在语句中报告了错误,这将更容易诊断。(请参阅strerror和的文档errno。)

于 2013-07-28T18:51:55.233 回答