質問

MSDN のによると、あなたがする必要はありこのように、非ブロッキングソケットを作成します:

unsigned nonblocking = 1;
ioctlsocket(s, FIONBIO, &nonblocking);

その後select()のために書き込みfdsetにそれを使用。接続が成功したかどうかを確認するには、ソケットが書き込み可能であるかどうかを確認する必要があります。しかし、MSDN-記事がエラーをチェックする方法については説明しません。

connect()のないの成功、そしてそのような場合には、の理由のそれは成功しませんでした?

なかった場合は、

どのように私は見ることができます

役に立ちましたか?

解決

あなたはgetsockopt()でソケットエラーを確認してください。ここではスティーブンスからの抜粋は、(それはUnixのだ付与されたが、Winsockのは、似た何かを持っている必要があります)です。


if ( FD_ISSET( sockfd, &rset ) || FD_ISSET( sockfd, &wset )) {
    len = sizeof(error);
    if ( getsockopt( sockfd, SOL_SOCKET, SO_ERROR, &error, &len ) < 0 )
        return -1;
} else {
    /* error */
}

errorがあれば、あなたにエラー番号を与えます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top