C++sleep()中断程序

C++ sleep() breaks program

本文关键字:程序 中断 C++sleep      更新时间:2023-10-16

我正试图通过c++中的套接字连接到计算机。基本上,这个代码应该做的是尝试连接,如果无法连接,它应该等待3秒钟,然后重试。

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

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

有人能帮忙吗?

一旦connect出现故障,套接字将指向出现故障的连接。您不能再使用它来连接任何内容。您需要close现有的套接字并分配一个新的套接字。如果您在cout语句中报告了错误,那么诊断起来会容易得多。(参见strerrorerrno的文档。)