private void DisconnectTimeoutStart(object obj) { AsynchronousSocket socket = obj as AsynchronousSocket; DateTime startTime = DateTime.Now; DateTime endTime = startTime + new TimeSpan(0, 0, 15); while (DateTime.Now < endTime) { Thread.Sleep(1000); } if (socket.Step < 2) // Not authenticated { socket.Disconnect(); socket.Close(); } }
void listenerSocket_ClientConnected(object sender, EventArgs e) { AsynchronousSocket socket = sender as AsynchronousSocket; IPEndPoint endPoint = socket.TcpSocket.RemoteEndPoint as IPEndPoint; OnDebug("Client Connected: (" + endPoint.Address + ")"); if (!IsClientPermitted(socket)) { socket.Disconnect(); socket.Close(); return; } StartAuthenicationTimeOut(socket); clients.Add(socket); socket.Disconnected += new EventHandler(clientSocket_Disconnected); socket.ReceiveCompleted += new EventHandler(clientSocket_ReceiveCompleted); }