【问题标题】:C++ sleep() breaks programC++ sleep() 中断程序
【发布时间】:2013-07-28 18:50:09
【问题描述】:

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

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

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

有人可以帮忙吗?

【问题讨论】:

    标签: c++ sockets connection sleep


    【解决方案1】:

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

    【讨论】:

    • 谢谢,如果可以的话,我会接受这个作为我的答案,但我仍然需要等待 7 分钟,但谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 2020-08-13
    相关资源
    最近更新 更多