我有一个函数可以检查端口是否在某个IP上打开。它通过检查SocketException
来实现。我的问题是,如果端口没有打开,它只是冻结。这是我的代码:
Private Function IsPortOpen(ByVal Host As String, ByVal PortNumber As Integer) As Boolean
Dim Client As TcpClient = Nothing
Try
Client = New TcpClient(Host, PortNumber)
Return True
Catch ex As SocketException
Return False
Finally
If Not Client Is Nothing Then
Client.Close()
End If
End Try
End Function
我尝试在连接中添加超时,尝试捕获基本Exception
,并将其作为错误。仍然做同样的事情。如果能够连接则返回true,但如果不能连接则返回冻结。有任何想法吗?