TCP 接続を開いて、NetworkStream.BeginRead() を使用して読み取ります。いずれかの端で接続が閉じられると、コールバックが呼び出され、ストリーム オブジェクトは役に立たなくなります。ドキュメントにあるように、EndRead() は、この場合、接続を終了した端に応じて IOException または ObjectDisposedException をスローします。
最後に成功した EndRead (および再 BegingRead) と切断の間、特に最後にそれを行った場合、欠落しているデータがないことが保証されていますか? そうでない場合、接続を閉じている場合は、未読のものがないように切断するときに NetworkStream.Read() を手動で行う必要がありますか?