2009-04-27 9 views
1

closesocketを呼び出すと、受信データがないのにWSARecvFromの完了ルーチン(受信データを待つまでに)がdwError = 0とcbTransferred = garbageで開始されていることに気付きましたそのソケットに対して保留中です。closesocketトリガーWSARecv完了ルーチン

私はソケットを閉じるときにそれを呼び出すことはできません。私はclosesocketの前にシャットダウンを呼び出そうとしましたが、それは役に立たなかった。

答えて

1

WSARecvFrom()自体はどのような値を返しますか?私はWSARecvFrom()を自分で使っていませんが、MSDNではdwErrorが完了ステータスだと言いますから、0は実際のエラーを意味すると思います。

また、closesocket()を呼び出す前にCancelIo()を呼び出していますか?

+0

CancelIOを呼び出すことは非常に悪いです。 – unixman83

+0

なぜですか?私のソケットコードでうまく動作します。 –

関連する問題