2009-03-16 13 views
1

ReadFileを使用してソケットを読み取るアプリケーションがあります。シナリオの1つでは、ReadFileは2バイトの読み込みがあるとの呼び出しを受け取りますが、ReadFileがこれを読み込もうとするとbytesreadを0として返します。これは、反対側のソケットが閉じたことを意味しますか? 。つまり、ReadFileが0バイトを読み取ると、相手側のソケットが閉じているということです。 。それともエラーなのでしょうか?ソケットReadFileの問題

答えて

0

ReadFile()が2バイトの読み込みを検出すると、同時に2バイトも読み込み、ソケットから削除されます。送信者がさらにデータを送信しない場合、次の呼び出しでは何も読み取られないことが示されます。エラーが発生したかどうかを判断するには、ReadFile()の戻り値をチェックする必要があります。