[英]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
語句中報告了錯誤,這將更容易診斷。 (請參閱有關strerror
和errno
文檔。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.