Пример #1
0
 private void AcceptCompleted(object sender, SocketAsyncEventArgs saea)
 {
     Console.WriteLine($"Listener.AcceptCompleted, sender={sender}, saea={saea?.PrintInfo()}");
     if (saea.SocketError == SocketError.Success)
     {
         ProcessAccept(saea);
     }
 }
Пример #2
0
        private void StartAccept(SocketAsyncEventArgs saea)
        {
            Console.WriteLine($"Listener.StartAccept, saea={saea?.PrintInfo()}");
            if (saea == null)
            {
                saea            = new SocketAsyncEventArgs();
                saea.Completed += AcceptCompleted;
            }
            else
            {
                saea.AcceptSocket = null;
            }

            bool pending = listenSocket.AcceptAsync(saea);

            if (!pending)
            {
                ProcessAccept(saea);
            }
        }
Пример #3
0
 private void ProcessAccept(SocketAsyncEventArgs saea)
 {
     Console.WriteLine($"Listener.ProcessAccept, saea={saea?.PrintInfo()}");
     AcceptCallback?.Invoke(this, saea);
     StartAccept(saea);
 }