public virtual Endpoint Listen() { try { Debug.Assert(_fd != null); _addr = Network.DoBind(_fd, _addr); Network.DoListen(_fd, _backlog); } catch (SystemException) { _fd = null; throw; } _endpoint = _endpoint.GetEndpoint(this); return(_endpoint); }