private static void Listen() { while (listening) { try { tcpServer = tcpListener.AcceptTcpClient(); //Test connection is still alive after a short delay (LDCient.CheckServer) Thread.Sleep(100); byte[] buffer = new byte[1] { 0 }; //A single 0 has no action on client tcpServer.Client.Send(buffer); Client client = new Client(NextClient(), tcpServer); clients.Add(client); lastClientConnected = client.name; if (null != _ClientConnectedDelegate) _ClientConnectedDelegate(); if (autoMode) { if (autoMessages) TextWindow.WriteLine(client.name + " Connected"); if (serverData != "") SendMessage(client.name, "SERVER:" + serverData); } for (int i = 0; i < clients.Count; i++) { SendMessage(clients[i].name, client.name + ":CONNECTED"); } } catch { } } if (null != tcpServer) tcpServer.Close(); if (null != tcpListener) tcpListener.Stop(); tcpServer = null; tcpListener = null; }