Java DatagramSocket على Windows 7
-
02-10-2019 - |
سؤال
يا رفاق ، أواجه بعض المتاعب مع بعض عدم الاتساق في تشغيل قطعة من الكود على Windows XP و Windows 7.
في الأساس أحاول إرسال حزمة UDP عن طريق العمل ،
DatagramSocket sendSocket = new DatagramSocket();
DatagramPacket dummyPacket = new DatagramPacket(new byte[ 1 ], 1,
configuration.remoteAddress, DUMMY_PORT);
try {
sendSocket.send(dummyPacket);
log("send dummy packet succeeded so assume already connected");
} catch (NoRouteToHostException nrthe) {
log("alreadyConnected: no route to host so assume not connected");
} catch (Exception e) {
errorHandler.handleException("send dummy packet failed", e, ErrorAndWarningHandler.ERROR);
}
في Windows 7 ، أحصل دائمًا على النجاح سواء كنت أتصل بالمضيف البعيد أم لا. أينما كان على Windows XP ، أحصل على استثناء وهو ما أتوقعه. هل يمكن لأحد أن يخبرني بما أفعله خطأ هنا حتى لا يعمل على Windows 7 ؟؟؟؟
نقدر ذلك
المحلول
يبدو أن هذا نوع من التناقض على Windows 7 و Windows XP. كما SJE397 ، يمكن أن يكون السلوك على XP الخطأ. أكدت السلوك عن طريق كتابة تطبيق VB صغير للكتابة إلى مقبس UDP. XP لا يسمح ذلك ولكن Windows 7 لا. حسنًا ، أعتقد أنني سأضطر إلى العثور على حل بديل مثل قد يكون لديك عنوان IP أو أي شيء للتحقق من الاتصال على قيد الحياة.
لا تنتمي إلى StackOverflow