9
votes

Comment diffuser le réseau Java

C'est mon premier réseau de programmation à Java. Je cherchais un moyen d'envoyer à une fois diffusé à tous les nœuds de l'ensemble de la mise en réseau. Pour leur faire savoir de mon existence. J'essaie de faire un jeu de réseau multijoueur et je veux que les clients puissent voir tous les jeux disponibles pour choisir celui à rejoindre. Je veux savoir comment diffuser du serveur et comment rendre les clients à écouter.

s'il vous plaît faites cela simple, je suis un débutant :)

Merci d'avance.


0 commentaires

3 Réponses :


2
votes

Ne confondez pas de termes.

La diffusion est généralement utilisée pour UDP. UDP n'est pas fiable en ce sens qu'il ne vérifie pas si tous les paquets sont reçus par les clients. L'ouverture de nombreux connexions TCP à beaucoup de clients n'est pas diffusée.

Pour que vos clients écoutent un port, vous devez utiliser des serversocket et le lire.


2 commentaires

En fait, je n'ai pas l'adresse IP du serveur pour vous connecter via un serversion. Je veux serveur diffuser son existence afin que je reçois son adresse IP.


Ensuite, cela serait vraiment diffusé, mais comme Michael Aaron Safyan a écrit dans un commentaire, il ne fonctionnera que dans le réseau local, car les routeurs ne reflètent généralement pas la diffusion (pour une bonne mesure, imaginez que toutes les émissions de chacun soient transmises sur Internet et un obstacle ». les tubes ").



6
votes

Pour diffuser des paquets de données, envoyez-les à l'adresse de diffusion du sous-réseau donné (la dernière adresse du sous-réseau). L'adresse IP 255.255.255.255 est l'adresse de diffusion pour le zéro réseau .

Une définition spéciale existe pour l'adresse de diffusion IP 255.255.255.255. C'est l'adresse de diffusion du réseau ZERO ou 0.0.0.0, qui dans les normes de protocole Internet signifie ce réseau, c'est-à-dire le réseau local. La transmission à cette adresse est limitée par définition, en ce sens qu'elle n'est jamais transmise par les routeurs connectant le réseau local à Internet.

Adresse de diffusion

Donc de diffuser sur votre réseau actuel, envoyez les paquets à 255.255.255.255 .


8 commentaires

C'est en fait une mauvaise idée, car les émissions UDP consomment des ressources de réseau excessifs et la plupart des routeurs ne transmettront pas de tels paquets sans personnaliser la configuration pour le permettre spécifiquement.


@Michael ne savait pas que la plupart des routeurs ne l'avancent pas. Comment fonctionne DHCP alors? C'est à quoi je l'ai appris et je l'ai vu dans d'autres réponses / questiond, c'est-à-dire Stackoverflow.com/questions/737899/Broadcasting Comme les routeurs ne transmettent pas la diffusion, seuls les NCI dans le réseau local (probablement uniquement dans le sous-réseau) seront atteints.


Je pensais qu'il voulait mettre en œuvre un jeu de réseau multijoueur, il devrait donc suffire de suffire s'il fonctionne dans le sous-réseau actuel.


@CULARIS, la diffusion atteindra toujours le routeur, mais le routeur ne le fera pas. En fait, ce n'est peut-être pas suffisant même si cela fonctionne dans le sous-réseau actuel. J'ai appris cela de manière difficile, car j'ai été brûlé sur un projet d'école en mettant en œuvre quelque chose avec la diffusion UDP. Il y avait plusieurs routeurs dans notre école à l'aide du même SSID, alors même si plusieurs périphériques étaient connectés au même réseau logique, ils pourraient réellement parler à différents routeurs et les paquets n'arriveraient pas.


@CULARIS Merci pour votre réponse. J'ai fait ce que vous avez dit mais lorsque j'ai fait une prise avec le IP 255.255.255.255, une exception a été lancée avec le message "Autorisation refusée". Faire le travail de radiodiffusion sur un réseau adhoc est suffisamment satisfaisant pour moi.


@ Pro.hessam peut-être que vous pourriez créer une autre question avec le code ou le modifier, avec Info que vous utilisez, car il s'agit d'un peu encombré ici.


@CULARIS OK. Vous pouvez voir mon nouveau message ici: Stackoverflow.com/Questtions/6572715/...



0
votes

Je vous recommande d'utiliser Pubsubhubbub ou un protocole similaire. Fondamentalement, vous auriez une "hub" à laquelle vous envoyez la notification que vous souhaitez avoir "diffusé". Chacun des nœuds abonna à la rubrique, en fournissant une URL que le concentrateur peut invoquer lorsque de nouvelles données sont arrivées. Lorsque le "hub" reçoit cette émission, le hub contacte chaque URL d'abonnement pour laisser le nœud savoir qu'il y a de nouvelles données.


0 commentaires