Example #1
0
        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;
        }