servidor TCP se unen al adaptador específico
-
19-09-2019 - |
Pregunta
¿Cómo puedo especificar qué adaptador para empezar a escuchar el?
Tengo una aplicación que se ejecuta en un PC que pasa a tener 2 adaptadores de red que se ejecuta en diferentes subredes (una red de infraestructura LAN de negocios, una para cámaras TCP)
Tengo una clase que se abre un servidor TCP y escucha en un puerto específico para las conexiones que vienen de los clientes de la LAN.
El problema es que mis inicializa la clase del servidor TCP y comienza a escuchar en el adaptador que se conecta a las cámaras. Cualquier solicitud de conexión desde la LAN negocio falla, no se trata.
La pregunta es, ¿Cómo puedo especificar qué adaptador para empezar a escuchar el?
extracto de código a continuación (esto no es la clase completa, sólo métodos clave)
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
Solución
Depende de su LocalIP
. Se podría ponerlo en "0.0.0.0" para escuchar en todas las interfaces, o puede configurarlo para que escuche en una interfaz específica.
En el código, lo establece en la primera dirección IP de su nombre de host. Que no siempre puede trabajar sin embargo.