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