Beispiel #1
0
        private void OnAcceptSocket(IAsyncResult ar)
        {
            try
            {
                Socket socket = _listener.EndAcceptSocket(ar);
                if (socket.Connected)
                {
                    if (SocketConnectionCheck.CheckConnection(socket, MaxIpConnectionCount, AntiDDosStatus))
                    {
                        socket.NoDelay = _disableNagleAlgorithm;
                        AcceptedConnections++;

                        ConnectionData connectionInfo = new ConnectionData(socket, _parser.Clone() as IDataParser,
                                                                           AcceptedConnections)
                        {
                            Disconnected = OnChannelDisconnect
                        };
                        OnClientConnected(connectionInfo);
                    }
                }
            }
            catch
            {
                // ignored
            }

            try
            {
                _listener?.BeginAcceptSocket(OnAcceptSocket, _listener);
            }
            catch
            {
                // ignored
            }
        }
Beispiel #2
0
 /// <summary>
 ///     Prepares the connection details.
 /// </summary>
 /// <exception cref="SocketInitializationException"></exception>
 private void PrepareConnectionDetails()
 {
     try
     {
         SocketConnectionCheck.SetupTcpAuthorization(20000);
         _listener = new TcpListener(IPAddress.Any, _portInformation);
         _listener.Start();
         _listener.BeginAcceptSocket(OnAcceptSocket, _listener);
     }
     catch (SocketException ex)
     {
         throw new SocketInitializationException(ex.Message);
     }
 }