2013-07-28 56 views
0

我想通過C++中的套接字連接到計算機。基本上這個代碼應該做的就是嘗試連接,如果它無法連接,它應該等待3秒鐘,然後再試一次。C++ sleep()休息程序

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

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

任何人都可以請幫忙嗎?

回答

4

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

+0

謝謝我會接受這個作爲我的答案,如果我可以但我仍然需要等待7分鐘,但謝謝 – jamespick