Java DatagramSocket в Windows 7 - PullRequest
       17

Java DatagramSocket в Windows 7

0 голосов
/ 15 сентября 2010

Ребята, у меня возникли проблемы с непоследовательностью выполнения фрагмента кода в 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 ????

Ценю это

1 Ответ

0 голосов
/ 23 сентября 2010

Это похоже на некоторое расхождение в Windows 7 и Windows XP. Как и в случае с sje397, поведение на XP может быть неправильным. Я подтвердил поведение, написав небольшое приложение VB для записи в UDP-сокет. XP не позволяет этого, но Windows 7 делает. О, хорошо, думаю, мне нужно будет найти альтернативное решение, например, пинговать ip или что-то, чтобы проверить, что соединение живо.

...