Frage

Wie kann ich festlegen, welche Adapter hören auf beginnen?

Ich habe eine Anwendung auf einem PC läuft, die zwei Netzwerkadapter ausgeführt wird in verschiedenen Subnetzen (für Business LAN-Infrastruktur ein Netzwerk, ein für TCP-Kameras) haben geschehen

Ich habe eine Klasse, die einen TCP-Server öffnet und wartet auf einem bestimmten Port für Verbindungen in von Clients im LAN kommen.

Das Problem ist, dass meine TCP Server-Klasse initialisiert und auf dem Adapter beginnt zu hören, die mit den Kameras verbunden ist. Jede Verbindungsanfrage kommt in der Business LAN ausfällt, ist es nicht behandelt.

Die Frage ist, Wie kann ich festlegen, welche Adapter hören auf beginnen?

Code-Ausschnitt unten (dies ist nicht die ganze Klasse, nur Schlüsselmethoden)

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
War es hilfreich?

Lösung

Es hängt von Ihrer LocalIP. Man könnte es auf „0.0.0.0“ setzen auf allen Schnittstellen zu hören, oder Sie können einstellen, es auf eine bestimmte Schnittstelle zu hören.

In Ihrem Code, stellen Sie es auf die erste IP-Adresse des Hostnamen. Die zwar nicht immer funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top