我的方法在等待连接时调用.BeginConnect()时启动了我的异步客户端套接字的方法。
我希望该方法异步,并且希望“等待”连接而不是阻塞,以便调用者可以在等待连接时继续。
public static async Task start_connection()
{
// Connect to a remote device.
try {
IPAddress ipAddress = IPAddress.Parse( App.SYSTEM_HUB_IP );
IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);
// Create a TCP/IP socket.
Socket client_Socket = new Socket(ipAddress.AddressFamily,
SocketType.Stream, ProtocolType.Tcp);
// .BeginConnect blocks.
<<<<<<<<'等待'在下一行上导致编译器错误
client_Socket.BeginConnect( remoteEP, new AsyncCallback(ConnectCallback), client_Socket); connectDone.WaitOne();
} catch (Exception e) {
Console.WriteLine(e.ToString());
}
}
在“此问题已在此处找到答案”中,我看不到任何异步客户端连接的解决方案。我所看到的只是一个异步侦听器(即服务器,而不是客户端)。我的套接字服务已经异步。但是我找不到异步客户端启动连接的示例。
具体来说,如何使用异步/等待来阻止.BeginConnect阻塞?