我有一个应用程序需要通过特定端口将数据流式传输到服务器。当应用程序启动时,它会执行许多检查,包括网络连接、可访问主机等。我希望它也检查端口以确保它能够接收数据。
我有这个代码:
Private Function CheckPort(ByVal Host As String) As Boolean
Dim IPs() As IPAddress = Dns.GetHostAddresses(Host)
Dim s As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
s.Connect(IPs(0), <port # removed>)
If s.Poll(-1, SelectMode.SelectWrite) Then
Return True
End If
Return False
End Function
该代码运行良好,但我担心通过执行检查可能会无意中阻止来自应用程序的后续消息到达端口。执行此检查会干扰我要发送到主机的实际数据吗?s.close()
在返回函数之前 我应该关闭套接字吗?