.NET 4.x Как узнать что удаленный клиент отключился - C#
Формулировка задачи:
Здравствуйте.
При подключение клиента создается список клиентов
можно ли испотльзуя данный список узнать что клиент отключился(отключение аварийное т.е при сбои программы... или закрытии процесса)
NetworkStream networkStream = clientSocket.GetStream(); networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize); dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom); dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$")); if (clientsList.Contains(dataFromClient)) { clientsList.Remove(dataFromClient); } clientsList.Add(dataFromClient, clientSocket);
Решение задачи: «.NET 4.x Как узнать что удаленный клиент отключился»
textual
Листинг программы
static void Main(string[] args) { TcpListener serverSocket = new TcpListener(8001); TcpClient clientSocket = default(TcpClient); int counter; serverSocket.Start(); Console.WriteLine("Ожидаем подключения ...."); counter = 0; string dataFromClient = null; while ((true)) { try { counter += 1; clientSocket = serverSocket.AcceptTcpClient(); byte[] bytesFrom = new byte[10025]; dataFromClient = null; NetworkStream networkStream = clientSocket.GetStream(); networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize); dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom); dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$")); if (clientsList.Contains(dataFromClient)) { clientsList.Remove(dataFromClient); ListHost.Remove(dataFromClient); } clientsList.Add(dataFromClient, clientSocket); ListHost.Add(dataFromClient); if (dataFromClient == "exit") { clientSocket.Close(); } broadcast(dataFromClient, dataFromClient, false); Console.WriteLine(dataFromClient); handleClinet client = new handleClinet(); client.startClient(clientSocket, dataFromClient, clientsList); //System.Threading.Timer timer = new System.Threading.Timer(new TimerCallback(SaveList), null, 0, 10000); //ListHost.Clear(); } catch (Exception ex) { clientsList.Remove(dataFromClient); ListHost.Remove(dataFromClient); clientSocket.Close(); serverSocket.Stop(); Console.WriteLine("exit"); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д