0

これを読んだとき: TcpClient接続を適切かつ完全に閉じる/リセットする方法は?

GetStream と Client はほとんど 2 つの異なるオブジェクトであるという知識を得ました。つまり、それらを処分する必要があります。

しかし、私が得られないのは、それが本当にこのようなものであるかどうかです.

原因 Visual Studio Analyze は、使い捨てアイテムが破棄されていないことを常に通知します (たとえそれが後であったとしても、実際には Using を使用する必要があります)。そして、GetStream() については何も述べていません。

ただし、とにかく正しい場合は、次のようなものを使用する必要があるということですか:

            using (tt1 = tcplisten.AcceptTcpClient())
            using(var tcpstream = tt1.GetStream())

奇妙に思えますが、使い捨てのリソースを横に並べたくないので、もっとよく理解してください。

4

1 に答える 1

1

クライアントを閉じても、それに関連付けられているストリームは閉じられません。したがって、あなたは電話する必要があります

tt1.GetStream().Close();
tt1.Close();

クライアントを閉じるだけでは、ストリームはアクティブなままになり、リソースを占有する可能性があります。

于 2013-08-23T16:04:54.023 に答える