モックc#httpサーバーを作成しましたが、問題があります。クライアントが最初に接続を閉じると(応答のすべてのデータが受信された)、プログラムは例外をスローします。
InvalidOperationException:すべてのバイトが書き込まれるまでストリームを閉じることができません。
私は何をすべきか?サーバーソケットも閉じているということですか?
モックc#httpサーバーを作成しましたが、問題があります。クライアントが最初に接続を閉じると(応答のすべてのデータが受信された)、プログラムは例外をスローします。
InvalidOperationException:すべてのバイトが書き込まれるまでストリームを閉じることができません。
私は何をすべきか?サーバーソケットも閉じているということですか?
サーバーはリクエスト全体を読みましたか?
一般的には、自分の側の接続を閉じてから、0 バイトになるまで読み取り (これは相手側が接続を閉じたことを意味します)、ソケットを解放することをお勧めします。
private void SafeShutdown( Socket s )
{
socket.Shutdown( Send );
var buff = new byte[200];
while( socket.Receive( buff ) > 0 )
;
socket.Shutdown( Receive );
socket.Close();
}