/// <summary> /// 监听Tcp请求 /// </summary> /// <param name="tcsObj"></param> private void PostListenHandleToLoop(object tcsObj) { TaskCompletionSource <int> taskCompletionSource = (TaskCompletionSource <int>)tcsObj; try { _listenHandle = new ListenHandle(); _listenHandle.Init(_loopHandle, null); _listenHandle.TcpNodealy(true); _listenHandle.TcpBind(_bindAddr, _bindPort); _listenHandle.Listen(1000, new Action <UvStreamHandle, int, Exception, object>(OnNewConnectionCallback), null); } catch (Exception exception) { taskCompletionSource.SetException(exception); return; } if (!string.IsNullOrEmpty(_tmpPath)) { _uvPipeHandle = new UvPipeHandle(); _uvPipeHandle.Init(_loopHandle, false); _uvPipeHandle.PipeBind(_tmpPath); _uvPipeHandle.Listen(100, new Action <UvStreamHandle, int, Exception, object>(PipeConnectionCallBack), null); taskCompletionSource.SetResult(0); return; } taskCompletionSource.SetResult(0); }