Microsoft提供的该示例围绕异步套接字编程。但是,当它调用异步函数BeginAccept时,它将随后到达WaitOne(),无论如何它都等待BeginAccept完成。
// Bind the socket to the local endpoint and listen for incoming connections.
try {
listener.Bind(localEndPoint);
listener.Listen(100);
while (true) {
// Set the event to nonsignaled state.
allDone.Reset();
// Start an asynchronous socket to listen for connections.
Console.WriteLine("Waiting for a connection...");
listener.BeginAccept(
new AsyncCallback(AcceptCallback),
listener );
// Wait until a connection is made before continuing.
allDone.WaitOne();
}
} catch (Exception e) {
Console.WriteLine(e.ToString());
}
Console.WriteLine("\nPress ENTER to continue...");
Console.Read();
}
当您基本上立即遭到阻止时,使用非阻止版本的Accept有什么意义?在BeginAccept运行回调函数之前,如何修改此版本以允许我执行其他操作?我是C#的新手,所以我迷失了。我来自C语言,可能会通过分叉侦听器来解决此问题。
编辑:这是示例