Auf der Client-Seite muss ich wissen, wann/ob meine Socket-Verbindung unterbrochen wurde. Allerdings gibt die Socket.Connected-Eigenschaft immer true zurück, auch nachdem die Server-Seite getrennt wurde und ich versucht habe, Daten durch sie zu senden. Kann mir jemand helfen herauszufinden, was hier vor sich geht? Ich muss wissen, wann ein Socket getrennt wurde.
Socket serverSocket = null;
TcpListener listener = new TcpListener(1530);
listener.Start();
listener.BeginAcceptSocket(new AsyncCallback(delegate(IAsyncResult result)
{
Debug.WriteLine("SOCKET-VERBINDUNG WIRD AKZEPTIERT");
TcpListener currentListener = (TcpListener)result.AsyncState;
serverSocket = currentListener.EndAcceptSocket(result);
}), listener);
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Debug.WriteLine("Client-Socket verbunden: " + clientSocket.Connected);//sollte FALSE sein, und das ist es
clientSocket.Connect("localhost", 1530);
Debug.WriteLine("Client-Socket verbunden: " + clientSocket.Connected);//sollte TRUE sein, und das ist es
Thread.Sleep(1000);
serverSocket.Close();//Schließen des Server-Sockets hier
Thread.Sleep(1000);
clientSocket.Send(new byte[0]);//Das Senden von Daten sollte dazu führen, dass der Socket seine Eigenschaft Connected aktualisiert.
Debug.WriteLine("Client-Socket verbunden: " + clientSocket.Connected);//sollte FALSE sein, aber es ist immer TRUE