簡體   English   中英

C ++ sleep()中斷程序

[英]C++ sleep() breaks program

我正在嘗試通過c ++中的套接字連接到計算機。 基本上,此代碼應做的是嘗試連接,如果無法連接,則應等待3秒鍾,然后重試。

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

該代碼在運行時的作用是,如果可以,它將連接,但是如果不能,則cout永遠不會被調用, sleep也永遠不會被調用。 當沒有sleep ,程序會運行並不斷嘗試連接到套接字,但是沒有延遲,因此無論如何都不會連接。 我真的需要延遲工作。

誰能幫忙嗎?

一旦connect失敗,套接字將引用失敗的連接。 您不能再使用它來連接任何東西。 您需要close現有的套接字並分配一個新的套接字。 如果您在cout語句中報告了錯誤,這將更容易診斷。 (請參閱有關strerrorerrno文檔。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM