我有一個應用程序需要通過特定端口將數據流傳輸到服務器。當應用程序啓動時,它會執行一些檢查,網絡連接,可訪問主機等等。我希望它也檢查端口以確保它能夠接收數據。關閉套接字?
我有這樣的代碼:
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()
來關閉套接字嗎?
感謝徹底的迴應,rodolk。我會記住這些建議。在我退出函數之前,我會繼續關閉套接字,以防萬一。 – Seth