async void AcceptConnections( ITcpListener tcpListener, ITcpClientConnectedEventHandler eventHandler, ILog logger) { if (tcpListener == null) { throw new ArgumentNullException(nameof(tcpListener)); } while (false == IsDisposed()) { try { eventHandler.TcpClientConnected( await tcpListener.AcceptTcpClientAsync() ); } catch (ObjectDisposedException ex) { if (ex.ObjectName != "System.Net.Sockets.Socket") { logger.Error(ex); } } catch (Exception ex) { logger.Error(ex); } } }
public TcpServer( ITcpListenerFactory tcpListenerFactory, ITcpClientConnectedEventHandler tcpClientConnectedEventHandler) { _tcpListenerFactory = tcpListenerFactory ?? throw new ArgumentNullException(nameof(tcpListenerFactory)); _tcpClientConnectedEventHandler = tcpClientConnectedEventHandler ?? throw new ArgumentNullException(nameof(tcpClientConnectedEventHandler)); }