void OnNewClient(IAsyncResult _asyncResult) { System.Net.Sockets.Socket ClientSocket = ListenSocket.EndAccept(_asyncResult); ListenSocket.BeginAccept(OnNewClient, null); SetKeepAlive(ClientSocket, 1000 * 60, 1000); var NewClient = new TelnetClient { Socket = ClientSocket }; if (Clients.ClientConnected(NewClient) == ClientAcceptanceStatus.Rejected) { NewClient.WasRejected = true; ClientSocket.Close(); } else { // We will handle all the echoing echoing echoing //var echoCommand = new byte[] //{ // (byte)TelnetControlCodes.IAC, // (byte)TelnetControlCodes.Will, // TODO: Handle client response denying this request // (byte)TelnetControlCodes.Echo, // (byte)TelnetControlCodes.IAC, // (byte)TelnetControlCodes.Dont, // (byte)TelnetControlCodes.Echo, //}; //ClientSocket.Send(echoCommand); ClientSocket.BeginReceive(NewClient.Storage, 0, 1024, System.Net.Sockets.SocketFlags.Partial, OnData, NewClient); Console.WriteLine("New telnet client: " + ClientSocket.RemoteEndPoint.ToString()); } }