Je fais donc un simple jeu d'applets en ligne multijoueur, et je le testais en utilisant des sockets UDP multicast au lieu de la connexion client-serveur typique. Ce n'est pas censé être efficace ou sûr, juste une expérience. Le seul problème est que quand j'essaye d'avoir d'autres personnes qui rejoignent le jeu depuis leur maison, ça ne me les connecte pas, mais quand j'utilise deux ordinateurs séparés, un qui est câblé et un qui est sur le wifi, ça fonctionne sans problème. Ils peuvent rejoindre leur propre jeu et se connecter à leur propre réseau, mais pas les autres peuples. Est-ce que je manque quelque chose de grand ici? Je posterai le code pertinent.Le réseautage multijoueur ne fonctionne que sur un réseau privé
InetAddress group;
DatagramPacket packet;
DatagramPacket messagePacket;
MulticastSocket socket;
socket = new MulticastSocket(4446); //random port
group = InetAddress.getByName("228.5.6.7"); //multicast address
socket.joinGroup(group);
//typical code for sending a packet
packet = new DatagramPacket(messageBuf, messageBuf.length, group, 4446);
Des idées? Je suis plutôt nouveau au réseautage mais trouve un défi amusant et voudrais continuer à apprendre plus à ce sujet .. si vous avez d'autres conseils en plus de m'aider à résoudre ce problème, il serait apprécié.
duplication possible de [Pour que la multidiffusion Udp fonctionne, le routeur doit la prendre en charge?] (Http://stackoverflow.com/questions/1801621/in-order-for-udp-multicast-to-work-router- must-support-it). En résumé, au moins un routeur entre vous et votre partenaire ne prend pas en charge la multidiffusion UDP. C'est probablement un problème insoluble à moins que vous ne contrôliez toute l'infrastructure réseau. –
triste jour :(on dirait que je vais lanning celui-ci haha.Merci beaucoup pour l'info cependant, je vais chercher à le servir moi-même. – philip
Multicast sur internet n'a jamais travaillé, jamais, dans le 15 Je pense que parce que l'espace d'adressage IPv4 est si petit, le consensus général parmi les personnes qui contrôlent les gros routeurs Internet était qu'il serait trop confus avec les gens qui essaient d'utiliser leurs propres applications sur les adresses./Vous avez deux options pour autant que je le vois: 1 - utiliser un VPN, donc vous pouvez passer la multidiffusion, ou 2 - attendre que IPv6 soit plus universellement supporté par le réseau domestique connexions (1 an? 5? 10?) et utiliser anycast. – DaveRandom