Domanda

Come faccio a specificare quale adattatore per iniziare l'ascolto su?

Ho un'applicazione in esecuzione su un PC, che succede ad avere 2 schede di rete in esecuzione su diverse sottoreti (una rete per l'infrastruttura LAN aziendale, uno per le macchine fotografiche TCP)

Ho una classe che si apre un server TCP e in ascolto su una porta specifica per le connessioni provenienti dai client della LAN.

Il problema è che i miei inizializza e di classe server TCP avvia l'ascolto sulla scheda che è collegata alle telecamere. Qualsiasi richiesta di connessione proveniente dalla LAN azienda fallisce, non viene affrontato.

La domanda è: Come faccio a specificare quale adattatore per iniziare l'ascolto su?

Codice estratto qui di seguito (questo non è la classe completa, a soli metodi chiave)

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
È stato utile?

Soluzione

Dipende dal vostro LocalIP. Si potrebbe impostarlo su "0.0.0.0" per l'ascolto su tutte le interfacce, o è possibile impostarlo in ascolto su una specifica interfaccia.

Nel codice, si imposta al primo indirizzo IP del nome host. Il che potrebbe non funzionare sempre però.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top