هل من الممكن تحديد واجهة الشبكة على JVM ( أو IDE ) استخدام

StackOverflow https://stackoverflow.com/questions/1008781

سؤال

الحالة يذهب مثل هذا ، لقد اثنين من واجهات شبكة الاتصال في بلدي ماك بوك برو.واحد هو ثابت تعريف واجهة إيثرنت والآخر هو DHCP تكوين واجهة لاسلكية.

أنا في محاولة لمعرفة كيفية تكوين معين جافا المشروع إلى استخدام بلدي ثابت سلكي واجهة فقط وليس ببساطة اختيار الأولى في قائمة إما عن طريق JVM أو من خلال فكرة ( IntelliJ 8 )

لقد تمكنت من تحقيق هذا عن طريق مثيل وير حيث لدي بيئة افتراضية تغذية قبالة بلدي السلكية واجهة فقط ولكن هذه الإعلانات مشاكل الأداء و العامة الصداع التقليب بين ويندوز / ماك.

أنا حتى الآن لم تتمكن من العثور على jvm العقار الذي يسمح لي بتحديد والتي nic يعتاد ولا رأيت وثائق IntelliJ التي تحدد ذلك.إذا كان أي شخص لديه أي أفكار حول كيفية حل هذا مؤلم قدر الإمكان وأرجو المساعدة.

هل كانت مفيدة؟

المحلول

نعم، يمكنك تحديد عن طريق ما يلي:

وint port= 52000; // بعض ميناء حر

وMulticastSocket msocket = new MulticastSocket(port);

وmsocket.setInterface(InetAddress.getByName("172.16.30.205"));

وأين 172.16.30.205 هو واحد من عنوان IP الخاص بي الكمبيوتر وأود أن التواصل من خلال واجهة.

نصائح أخرى

وjava.net.Socket لديها منشئ الذي يحدد أي عنوان IP المحلي لربط، ولأن كل واجهة الشبكة يحصل عنوان IP الخاص به، يمكنك استخدام ذلك.

ولكن الحصول من java.net.Socket إلى بروتوكول مستوى أعلى (مثل HTTP) هو مسألة أخرى تماما، ولكن لم تقم بتحديد ما من شأنه أن يكون.

وأنا لا أعرف من وسيلة على مستوى JVM للقيام بذلك، للأسف، مجرد نهج برنامجي أعلاه.

ووNIC تستخدم لتعليق هو الذي اختاره نظام التشغيل اعتمادا على "طريق" أفضل المتاح لماذا يتم الوصول عنوان أي وقت مضى. لا توجد وسيلة لتطبيق الذي يجلس فوق السائقين NIC لاختيار NIC معين. يمكنك فقط الحصول على مقربة عندما كنت تستمع على منفذ ملزمة في عنوان محدد، والتي تنطبق فقط إذا كنت تقوم بتشغيل الخدمة.

هل يمكن أن تحاول تعديل "قياس" للمسار محدد لNIC لإجبار OS تفضل ذلك.

قد يكون هذا مساعدة:التعرف على واجهة الشبكة سبيل المثال

"[أنا]و لديك تفضيل أو غير ذلك تحتاج إلى تحديد أي NIC الاستخدام, يمكنك الاستعلام عن نظام المناسبة واجهات تجد عنوان على الواجهة التي تريد استخدامها."

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