C#如何使用“等待”来等待异步客户端套接字的连接

时间:2018-12-19 17:00:31

标签: c# .net sockets asynchronous

我的方法在等待连接时调用.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阻塞?

0 个答案:

没有答案