0
如何指定開始偵聽哪個適配器?將TCP服務器綁定到特定適配器
我恰好有2個網絡適配器不同的子網運行在PC上運行的應用程序(一個網絡,業務網絡基礎設施,一個用於TCP相機)
我有打開了一個TCP類服務器並監聽特定端口上的連接,從局域網上的客戶端進入。
問題是我的TCP服務器類初始化並開始偵聽連接到攝像機的適配器。來自業務局域網的任何連接請求都會失敗,因此無法處理。
問題是,如何指定開始偵聽哪個適配器?
代碼摘錄如下(這不是完整的類,只是主要方法)
Public Sub New(ByVal Name As String)
'get config
_bootStrap = New TCPServerBootstrap(Name)
'start log file
_Trace = New ACS.Utility.Logging("Connectivity." & Name & ".TcpServer." & _bootStrap.Port)
_Trace.WriteLog("TCP Server Starting")
Dim LocalIP As System.Net.IPAddress = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList(0)
_myListener = New TcpListener(LocalIP, _bootStrap.Port)
_Timer = New System.Timers.Timer
_Timer.Interval = 500
_Timer.Enabled = False
_name = Name
_details = _myListener.LocalEndpoint.ToString
End Sub
Public Sub BeginListening()
'Starts the listener and uses the Asynchronous 'Begin' method to handle inbound connection attempts
_Trace.WriteLog("Begin Listening on: " & _myListener.LocalEndpoint.ToString)
_myListener.Start()
_myListener.BeginAcceptSocket(New AsyncCallback(AddressOf HandleIncomingConnectionRequest), _myListener)
End Sub
感謝Frunsi,設置在所有接口上偵聽將很好地解決問題。優秀! – GermanAndy 2010-01-08 12:26:21