static void AcceptCallback(IAsyncResult ar) { s_trace.TraceInformation("AcceptCallback"); var listenSocket = (Socket)ar.AsyncState; if (s_stopListen) { s_acceptStopEvent.Set(); return; } var socket = listenSocket.EndAccept(ar); var conn = new TcpConnection(socket); s_callback(conn); ar = s_listenSocket.BeginAccept(AcceptCallback, listenSocket); if (ar.CompletedSynchronously == true) throw new Exception(); }
static void AcceptCallback(IAsyncResult ar) { s_trace.TraceInformation("AcceptCallback"); var listenSocket = (Socket)ar.AsyncState; if (s_stopListen) { s_acceptStopEvent.Set(); return; } var socket = listenSocket.EndAccept(ar); var conn = new TcpConnection(socket, debugName: s_debugName); s_callback(conn); ar = s_listenSocket.BeginAccept(AcceptCallback, listenSocket); if (ar.CompletedSynchronously == true) { throw new Exception(); } }