// start accepting public void ServerAccept(SockMgr listener, SockMgr.SockMgrAcceptEventHandler acceptCallback = null, object callbackState = null) { listener.SockMgrAcceptEvent += OnSocketAccept; listener.StartAccept(acceptCallback, callbackState); }
// return listener if possible; set callback to null if no callback is needed public SockMgr BeginBuildTcp(SockFactoryOptions options, SocketRole socketRole, SockMgr.SockMgrConnectEventHandler connectCallback = null, SockMgr.SockMgrAcceptEventHandler acceptCallback = null, object callbackState = null) { SockMgr listenerMgr = null; _sockFactory.SetOptions(options); switch (socketRole) { case SocketRole.Client: if (options.TimesToTry > 0) { _sockFactory.BuildTcpClient(connectCallback, callbackState); } break; case SocketRole.Listener: listenerMgr = _sockFactory.GetTcpListener(); _sockFactory.ServerAccept(listenerMgr, acceptCallback, callbackState); RegisterNewSockMgr(listenerMgr); break; } return(listenerMgr); }