سؤال

كيف يمكنني تحديد المحول الذي يجب أن يبدأ الاستماع إليه؟

لدي تطبيق يعمل على جهاز كمبيوتر يحدث أن يكون لديك محولات شبكة 2 تعمل على الشبكات الفرعية المختلفة (شبكة واحدة للبنية التحتية لشبكة LAN التجارية، واحدة لكاميرات 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
هل كانت مفيدة؟

المحلول

ذلك يعتمد على الخاص بك LocalIP. وبعد يمكنك تعيينه إلى "0.0.0.0" للاستماع إلى جميع الواجهات، أو يمكنك تعيينه للاستماع إلى واجهة محددة.

في التعليمات البرمجية الخاصة بك، قمت بتعيينه على عنوان IP الأول لاسم المضيف الخاص بك. التي قد لا تعمل دائما على الرغم من.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top