TcpClient: Herausfinden ob der Host die Verbindung getennt hat.



  • Hallo Leute,

    ich verbinde mich miteinem Tcp/Ip host:

    _tcpClient = new System.Net.Sockets.TcpClient(_ipAddress.ToString(), _port);
    								_tcpReadStream = _tcpReadStream = _tcpClient.GetStream();
    

    und warte in einem thread ob daten ankommen:

    var asynResult = _tcpReadStream.BeginRead(
    								receiveBuffer, 0, ReadBufferSize, null, null);
    
    							//Block until data recveived
    							if (asynResult.AsyncWaitHandle.WaitOne())
    							{
    								int nRead = _tcpReadStream.EndRead(asynResult);
    
    								if (nRead > 0)
    									OnDataReceived(receiveBuffer.Take(nRead).ToArray());
    							}
    

    wird allerdings die Verbindung vom Host getrennt, bekomm ich das nicht mit, bzw. der NetworkStream teilt mir das nicht mit!
    Wie kann ich das bewerkstelligen?

    Ich könnte zyklisch Daten schicken (Heartbeat) , so bekomm ich mit ob die Verbinduing noch steht.. aber geht es auch anders?

    Grüße



  • Mach mal ein else if (nRead == 0) dazu



  • genial;) danke, daran hab ich net gedacht..


Anmelden zum Antworten