嗨,我有一段代码使用套接字连接到服务器
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