private void AcceptCallback(IAsyncResult ar)
 {
     ThreadNotifier.Set();
     Listener      = (Socket)ar.AsyncState;
     CurrentClient = new ClientSocketAsync(Listener.EndAccept(ar));
     OnClientAccepted?.Invoke(this, CurrentClient);
 }
Esempio n. 2
0
        public async Task acceptClient()
        {
            OnListeningForClient.Invoke(this, new ServerEventArgs("Server Accepting Clients."));

            client = await server.AcceptTcpClientAsync();

            OnClientAccepted.Invoke(this, new ServerEventArgs("Server Accepted Client."));
        }
Esempio n. 3
0
 /// <summary>
 /// Process a new connected client.
 /// </summary>
 /// <param name="socketAsyncEvent">Socket async event arguments.</param>
 private void ProcessAccept(SocketAsyncEventArgs socketAsyncEvent)
 {
     if (socketAsyncEvent.SocketError == SocketError.Success)
     {
         OnClientAccepted?.Invoke(this, socketAsyncEvent);
         StartAccept();
     }
 }
Esempio n. 4
0
        /// <summary>
        /// Create client accepter with given configuration.
        /// <remarks>Accepter uses buffer provider, for creating client buffers</remarks>
        /// </summary>
        /// <param name="configuration">Configuration of network</param>
        /// <param name="bufferProvider">Buffer provider for client communication</param>
        /// <param name="clientAcceptedHandler">Handler called on every accepted client. Is called synchronously</param>
        internal Accepter(NetworkConfiguration configuration, MemoryConfiguration memoryConfiguration, BufferProvider bufferProvider, OnClientAccepted clientAcceptedHandler)
        {
            _configuration  = configuration;
            _bufferProvider = bufferProvider;

            _bufferSize = memoryConfiguration.ClientBufferSize;

            _listener         = new TcpListener(configuration.ListenAddress, configuration.ListenPort);
            _onClientAccepted = clientAcceptedHandler;
        }
Esempio n. 5
0
 private void EndAccept(IAsyncResult iar)
 {
     try
     {
         var socket = m_sock.EndAccept(iar);
         OnClientAccepted?.Invoke(socket);
     }
     catch (ObjectDisposedException) { }
     catch (SocketException) { }
     finally
     {
         BeginAccept();
     }
 }
Esempio n. 6
0
        /// <summary>
        /// Process a new connected client.
        /// </summary>
        /// <param name="socketAsyncEvent">Socket async event arguments.</param>
        private void ProcessAccept(SocketAsyncEventArgs socketAsyncEvent)
        {
            if (socketAsyncEvent.SocketError == SocketError.Success)
            {
                try
                {
                    OnClientAccepted?.Invoke(this, socketAsyncEvent);
                }
                catch (Exception exception)
                {
                    OnError?.Invoke(this, exception);
                }

                StartAccept();
            }
        }
Esempio n. 7
0
        private void EndAccept(IAsyncResult iar)
        {
            try
            {
                Event.Set();

                var socket = Socket.EndAccept(iar);
                OnClientAccepted?.Invoke(socket);
            }
            catch (ObjectDisposedException)
            {
                //Nothing
            }
            catch (Exception ex)
            {
                OnException?.Invoke(ex);
            }
        }