Die Eigenschaft C # Socket.Connected wird nach dem Aufrufen von Socket.Receive in false geändert
<code>int readCount; byte[] buffer = new byte[128]; SocketError socketError; TcpClient tcpClient = tcpListener.AcceptTcpClient(); tcpClient.Client.ReceiveTimeout = 500; // #1 // tcpClient.Client.Connected is **true** here. readCount = tcpClient.Client.Receive(buffer, 0, buffer.Length, SocketFlags.None, out socketError); // reacCount > 0 // tcpClient.Client.Connected is **false** here. </code>
Wenn # 1 durch ersetzt wirdtcpClient.Client.Blocking = false;, tcpClient.Client.Connected hat den richtigen Wert (true).
Ich habe eingestelltSocket.ReceiveTime
Eigentum zu 100 und aufgerufenSocket.Receive()
. Receive()
Gibt einen ganzzahligen Wert größer als Null zurück. Es ist keine Ausnahme aufgetreten. Nachdem ich meinen Job mit kopiertem Puffer erledigt habe - ich habe keine der Socket-bezogenen Methoden verwendet -, wurde die Eigenschaft Socket.Connected in false geändert. Warum?