سؤال

يا رفاق ، أواجه بعض المتاعب مع بعض عدم الاتساق في تشغيل قطعة من الكود على 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 أو أي شيء للتحقق من الاتصال على قيد الحياة.

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