quelqu'un peut me montrer un exemple en java pour recevoir des données DatagramSocket et envoyer les mêmes données par Multicast Socketjava DatagramSocket recevoir des données Multicast Socket envoyer des données
Répondre
Envoi datagrammes multicast
Pour envoyer tout type de datagrammes en Java, que ce soit unicast, broadcast ou multicast, on a besoin d'un java.net.DatagramSocket
:
DatagramSocket socket = new DatagramSocket();
On peut éventuellement fournir local port vers le constructeur DatagramSocket auquel le socket doit se lier. Ceci est seulement nécessaire si l'on a besoin d'autres parties pour pouvoir nous joindre à un port spécifique. Un troisième constructeur prend le port local ET l'adresse IP locale à laquelle lier. Ceci est utilisé (rarement) avec des hôtes multi-hébergés où il est important sur quelle carte réseau le trafic est reçu.
DatagramSocket socket = new DatagramSocket();
byte[] b = new byte[DGRAM_LENGTH];
DatagramPacket dgram;
dgram = new DatagramPacket(b, b.length,
InetAddress.getByName(MCAST_ADDR), DEST_PORT);
System.err.println("Sending " + b.length + " bytes to " +
dgram.getAddress() + ':' + dgram.getPort());
while(true) {
System.err.print(".");
socket.send(dgram);
Thread.sleep(1000);
}
Réception datagrammes multicast
On peut utiliser une DatagramSocket normale pour envoyer et recevoir des datagrammes unicast et de diffusion et d'envoyer des datagrammes de multidiffusion. Cependant, pour recevoir des datagrammes de multidiffusion, il faut un MulticastSocket. La raison en est simple, un travail supplémentaire doit être effectué pour contrôler et recevoir le trafic de multidiffusion par toutes les couches de protocole inférieures à UDP.
byte[] b = new byte[BUFFER_LENGTH];
DatagramPacket dgram = new DatagramPacket(b, b.length);
MulticastSocket socket =
new MulticastSocket(DEST_PORT); // must bind receive side
socket.joinGroup(InetAddress.getByName(MCAST_ADDR));
while(true) {
socket.receive(dgram); // blocks until a datagram is received
System.err.println("Received " + dgram.getLength() +
" bytes from " + dgram.getAddress());
dgram.setLength(b.length); // must reset length field!
}
Pour plus d'informations:
Est-il possible que chaque client puisse envoyer et recevoir sur un groupe de diffusion? (en définissant 2 socket comme DatagramSocket pour send et MulticastSocket pour receive) – Razavi
Vous avez ce retour à l'avant. Vous recevoir des multidiffusions à travers un MulticastSocket mais vous n'avez pas besoin de les envoyer de cette façon: vous pouvez les envoyer via un DatagramSocket. Voir le Java Tutorial, Custom Networking trail.
Je ne suis pas sûr de la véracité de ce commentaire. Je n'ai pas pu envoyer de paquet de multidiffusion via un DatagramSocket normal. Ce n'est que lorsque j'ai commencé à utiliser un MulticastSocket côté serveur que j'ai commencé à me montrer le trafic sortant en reniflant les paquets à la fin du serveur. –
- 1. Python envoyer/recevoir des données hexadécimales via un socket TCP
- 2. TcpServer - Envoyer et recevoir des données
- 3. recevoir des données sur un socket python
- 4. stream socket envoyer/recevoir des messages diffusés?
- 5. envoyer et recevoir des fichiers socket programmation
- 6. python envoyer des données incomplètes sur socket
- 7. Recevoir et envoyer des données en C#
- 8. comment recevoir des données udp dans android?
- 9. recevoir des données à partir d'un problème de socket boost
- 10. Comment envoyer et recevoir des données Messages SMS
- 11. Comment recevoir des données en utilisant UDP dans Android?
- 12. comment écrire des données sur le canal socket
- 13. Sockets - envoyer et recevoir
- 14. .NET Multicast Socket Error
- 15. Envoyer des données avec boost :: asio :: socket_base
- 16. Traitement des données reçues de la socket
- 17. Comment envoyer des données du client C# au serveur java via une socket?
- 18. Envoyer des données sur le réseau C#
- 19. IPv6 Multicast Check Java
- 20. Sockets: recevoir des données d'un périphérique (principalement) inconnu (bluetooth)
- 21. Comment recevoir/envoyer des fichiers avec un service Web Java
- 22. C++ envoyer des données à plusieurs sockets UDP
- 23. données à caractère Adjonction nul dans le tableau de caractères pour envoyer des données par socket
- 24. MySQL: recevoir des données seulement par mois
- 25. Envoyer des données au serveur
- 26. jqGrid: envoyer des données d'édition
- 27. Winsocks Envoyer et recevoir
- 28. TCP Socket ne pas recevoir de données, écrire/envoyer ne pas timeout?
- 29. Java - Envoyer le certificat par le socket
- 30. comment envoyer des données du serveur de socket à la page aspx?
S'il vous plaît utiliser des signes de ponctuation et d'écrire un titre de bonne question! – Alexander