/// <summary> /// Обработчик события оключения клиента /// </summary> /// <param name="sender">Клиент</param> /// <param name="message">Сообщение о причине отключения</param> void Client_disconnected(ClientConnection sender, string message) { Clients.Remove(sender); Output.Write(message, 2); }
/// <summary> /// Обработчик неудачной авторизации клиента /// </summary> /// <param name="sender">Клиент</param> /// <param name="message">Сообщение о неудачной авторизации</param> void Client_AuthorizationFaild(ClientConnection sender, string message) { sender.SendAsync("Auth Failed"); sender.CloseConnection(); Clients.Remove(sender); Output.Write(message, 2); }
/// <summary> /// Обработчик успешной авторизации клиента /// </summary> /// <param name="sender">Клиент</param> /// <param name="message">Сообщение об успешной авторизации</param> void Client_AuthorizationSuccess(ClientConnection sender, string message) { Clients.Add(sender); sender.SendAsync("Auth Success"); Output.Write(message, 2); }
private void AcceptCompleted(object sender, SocketAsyncEventArgs e) { if (e.SocketError == SocketError.Success) { ClientConnection Client = new ClientConnection(e.AcceptSocket); Client.AuthorizationFaild += new ClientConnection.ConnectionEvent(Client_AuthorizationFaild); Client.AuthorizationSuccess += new ClientConnection.ConnectionEvent(Client_AuthorizationSuccess); Client.Disconnected += new ClientConnection.ConnectionEvent(Client_disconnected); Output.Write(e.AcceptSocket.RemoteEndPoint + " Trying to connect", 2); //Console.WriteLine("{0} Trying to connect", e.AcceptSocket.RemoteEndPoint); } e.AcceptSocket = null; if(Clients.Count < cfg.MaxClients) AcceptAsync(AcceptAsyncArgs); }