嗨,我有一段代码使用套接字连接到服务器

Try
    'Connect To The Server
    Dim socketclient As New TcpClient
    Dim success
    Dim result
    result = socketclient.BeginConnect(ip, port, socket.EndConnect, socketclient)
    success = result.AsyncWaitHandle.WaitOne(5000, True)
    If socketclient.Connected = False Then
        Throw New Exception("Server is offline")
    End If
catch ex as exception

End Try

如你看到的。如果服务器处于脱机状态,我的try-catch设置不会捕获错误“主机未知”,我相信这是因为该错误是在异步调用期间发生的。如果这是真的,那么如何在异步调用中捕获错误?

最佳答案

您应该结束异步操作。
您完全不需要等待,如果您只想阻止等待连接,只需通过套接字调用EndConnect;)
http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.endconnect.aspx

10-08 08:44