0

リッスンを開始するアダプターを指定するにはどうすればよいですか?

異なるサブネット上で2つのネットワークアダプターが実行されているPCで実行されているアプリケーションがあります(1つはビジネスLANインフラストラクチャ用、もう1つはTCPカメラ用)

TCPサーバーを開き、LAN上のクライアントからの接続を特定のポートでリッスンするクラスがあります。

問題は、TCPサーバークラスが初期化され、カメラに接続されているアダプターでリッスンを開始することです。ビジネスLANからの接続要求はすべて失敗し、処理されません。

問題は、リッスンを開始するアダプタをどのように指定できますか?

以下のコードの抜粋(これは完全なクラスではなく、主要なメソッドのみです)

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
4

1 に答える 1

1

それはあなた次第LocalIPです。「0.0.0.0」に設定してすべてのインターフェイスでリッスンするか、特定のインターフェイスでリッスンするように設定できます。

コードでは、ホスト名の最初の IP アドレスに設定します。ただし、常に機能するとは限りません。

于 2010-01-06T12:59:45.057 に答える