Exemplo n.º 1
0
        public async Task StartAsync()
        {
            var endpoint     = _options.GetListenEndPoint();
            var listenSocket = _listenSocket = new Socket(endpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            listenSocket.Bind(endpoint);
            listenSocket.Listen(_options.Backlog);

            IsRunning = true;

            while (IsRunning)
            {
                var clientSocket = await listenSocket.AcceptAsync();

                var channel = await _channelFactory(clientSocket);

                OnNewChannelAccepted?.Invoke(this, channel);
            }
        }