0

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

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 设置不会捕获错误“主机未知”我相信这是因为错误发生在异步调用期间。如果这是真的,如何在异步调用中捕获错误?

4

1 回答 1

0

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

于 2012-10-17T01:43:54.667 回答