private void AcceptCompleted(object sender, SocketAsyncEventArgs saea) { Console.WriteLine($"Listener.AcceptCompleted, sender={sender}, saea={saea?.PrintInfo()}"); if (saea.SocketError == SocketError.Success) { ProcessAccept(saea); } }
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); } }
private void ProcessAccept(SocketAsyncEventArgs saea) { Console.WriteLine($"Listener.ProcessAccept, saea={saea?.PrintInfo()}"); AcceptCallback?.Invoke(this, saea); StartAccept(saea); }