Question

Comment puis-je spécifier la carte pour commencer à écouter sur?

J'ai une application en cours d'exécution sur un PC qui arrive à avoir 2 cartes réseau en cours d'exécution sur différents sous-réseaux (un réseau d'infrastructure LAN d'affaires, une pour les caméras TCP)

J'ai une classe qui ouvre un serveur TCP et écoute sur un port spécifique pour les connexions venant de clients sur le réseau local.

Le problème est que mes initialise de classe serveur TCP et commence à écouter sur l'adaptateur qui est connecté aux caméras. Toute demande de connexion venant du réseau local d'entreprise tombe en panne, il n'est pas traitée.

La question est, Comment puis-je spécifier la carte pour commencer à écouter sur?

extrait de code ci-dessous (ce n'est pas la classe complète, juste des méthodes clés)

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
Était-ce utile?

La solution

Cela dépend de votre LocalIP. Vous pouvez le mettre à « 0.0.0.0 » pour écouter sur toutes les interfaces, ou vous pouvez le configurer pour écouter sur une interface spécifique.

Dans votre code, vous définissez à la première adresse IP de votre nom d'hôte. Ce qui ne peut pas toujours fonctionner bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top