0

C ++のソケットを介してコンピューターに接続しようとしています。基本的に、このコードがすべきことは接続を試みることです。接続できない場合は、3 秒待ってから再試行する必要があります。

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

実行時にコードが行うことは、接続できる場合は接続しますが、接続できない場合は、coutが呼び出されるsleepことも、呼び出されることもありません。そこにない場合sleep、プログラムは動作し、継続的にソケットに接続しようとしますが、遅延がないため接続されません。私は本当に仕事に遅れが必要です。

誰でも助けてもらえますか?

4

1 に答える 1

4

connect失敗すると、ソケットは失敗した接続を参照します。それを使用して何かに接続することはできなくなりました。close既存のソケットに新しいソケットを割り当てる必要があります。coutステートメントでエラーを報告していれば、これを診断するのはずっと簡単だったでしょう。strerror(およびのドキュメントを参照してくださいerrno。)

于 2013-07-28T18:51:55.233 に答える