2010-09-15 6 views
0

Guys im avoir des problèmes avec une certaine incohérence de l'exécution d'un morceau de code sous Windows XP et Windows 7.Java DatagramSocket sur Windows 7

Fondamentalement im essayant d'envoyer un paquet UDP en faisant,

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); 
} 

Sur Windows 7, j'obtiens toujours du succès, que je me connecte ou non à l'hôte distant. Où, comme sur Windows XP, je reçois une exception qui est ce que j'attends. Quelqu'un peut-il me dire ce que je fais mal ici pour ne pas travailler sur Windows 7 ????

apprécierais

+0

Je pense que c'est le comportement XP qui est étrange - vous n'avez pas besoin d'être connecté pour envoyer un datagramme UDP. – sje397

+0

windows xp lève une exception quand cela se produit mais Windows 7 doesnt .... c'est fondamentalement ma question. si cela lance une erreur, cela me permet d'établir une connexion. – nixgadgets

Répondre

0

Cela semble être une sorte de divergence sur Windows 7 et Windows XP. Comme sje397, ce pourrait être le comportement sur XP qui est faux. J'ai confirmé le comportement en écrivant une petite application VB pour écrire sur le socket UDP. XP ne le permet pas mais Windows 7 le fait. Ohh bien deviner que je vais devoir trouver une solution alternative comme peut être ping sur une ip ou quelque chose pour vérifier la connexion est vivante.