J'ai essayé de comprendre pourquoi un programme Java qui utilise la communication UDP sur Windows fonctionne parfaitement à 100 % mais semble régulièrement perdre des paquets sur une version macOS de la JVM (8.x).
J'ai vu un autre fil de discussion sur StackExchange qui n'a jamais vraiment été résolu, mais il semble qu'une personne ait remarqué un problème similaire sur OSX là-bas également.
Je n'ai pas activé le pare-feu standard dans les préférences et je ne pense pas avoir de paramètres réseau spéciaux qui pourraient interrompre les datagrammes UDP. De plus, si j'exécute le même programme sur une machine virtuelle Windows 7 via VirtualBox sur le même matériel, le programme fonctionne très bien.
Des idées sur ce qu'il faut rechercher ou si c'est un problème connu ?
MISE À JOUR 2018-11-24 : Plus de détails. J'utilise Java 1.8.0_92-b14 d'Oracle sur un MacPro3,1 avec macOS 10.13.6. Le programme que j'exécute est ADTPro 2.0.2 en tant que serveur Ethernet essayant de communiquer avec un vieux Apple //e qui a un Uthernet II de l'autre côté de ADTPro. Il s'agit d'un logiciel pour transférer des images de disque vers/depuis les machines.
Le problème est que les transferts finissent souvent par expirer et échouer et il semble que des paquets se perdent et que le code n'est pas suffisamment sophistiqué pour corriger les erreurs et renvoyer/réessayer. En examinant le code source, tout semble être en UDP, ce qui soulève certainement des suspicions. Selon le mainteneur sur GitHub, le fait d'utiliser l'UDP est historique et personne n'a fait le travail de le convertir en TCP. Étant donné que le logiciel fonctionne parfaitement en communiquant avec une machine Windows avec les mêmes logiciels et versions Java, je suppose que c'est quelque chose lié à macOS ou à la version Java OSX et je demande si quelqu'un sait comment le déterminer avec certitude ou autrement. Est-ce que cela aide ?
0 votes
Pouvez-vous décrire le problème plus en détail? Le problème est-il uniquement la perte de paquets? Combien de paquets sont perdus? Quel type d'interface? (Ethernet?) Pouvez-vous vérifier la perte de paquets avec une trace de paquets? (Wireshark, tcpdump, etc) Quelle JVM utilisez-vous exactement? (Fournisseur et version)
0 votes
Comment mesurez-vous ?
0 votes
Fourni plus d'informations.