/// <summary> /// Executes after listener accepted new connection. /// </summary> /// <param name="socket">New connection socket.</param> private static void ListenerService_OnConnectionAccepted(Socket socket) { if (socket != null && socket.Connected) { UserConnection userConnection = new UserConnection(socket); if (m_ActiveConnections.Count >= Settings.Default.LoginServiceMaxAwaitingUsersCount) { userConnection.Send(LoginFailed.ToPacket(UserAuthenticationResponseType.ServerOverloaded)); CloseActiveConnection(userConnection); return; } if (m_ActiveConnections.ContainsKey(userConnection.Session.ID)) { userConnection = null; ListenerService_OnConnectionAccepted(socket); return; } m_ActiveConnections.Add(userConnection.Session.ID, userConnection); userConnection.Send(InitializeConnection.ToPacket(userConnection.Session)); // say hello to client userConnection.BeginReceive(); } }
/// <summary> /// Executes after listener accepted new connection. /// </summary> /// <param name="socket">New connection socket.</param> private static void ListenerService_OnConnectionAccepted( Socket socket ) { if ( socket != null && socket.Connected ) { UserConnection userConnection = new UserConnection(socket); if ( m_ActiveConnections.Count >= Settings.Default.LoginServiceMaxAwaitingUsersCount ) { userConnection.Send(LoginFailed.ToPacket(UserAuthenticationResponseType.ServerOverloaded)); CloseActiveConnection(userConnection); return; } if ( m_ActiveConnections.ContainsKey(userConnection.Session.ID) ) { userConnection = null; ListenerService_OnConnectionAccepted(socket); return; } m_ActiveConnections.Add(userConnection.Session.ID, userConnection); userConnection.Send(InitializeConnection.ToPacket(userConnection.Session)); // say hello to client userConnection.BeginReceive(); } }