kann mir in Java ein Beispiel jemand zeigen Daten von Datagram zu empfangen und dieselben Daten durch Multicast-Socket-Java Datagram empfängt Daten Multicast Socket-Daten senden
Antwort
Senden Multicast-Datagramme
Um jede Art von Datagramms in Java zu schicken, es Unicast, Broadcast oder Multicast, braucht man ein java.net.DatagramSocket
:
DatagramSocket socket = new DatagramSocket();
Man kann eine lokale optional liefern Port zum DatagramSocket-Konstruktor, an den der Socket gebunden werden muss. Dies ist nur notwendig, wenn wir andere Parteien benötigen, um uns in einem bestimmten Hafen erreichen zu können. Ein dritter Konstruktor übernimmt den lokalen Port UND die lokale IP-Adresse, an die er binden soll. Dies wird (selten) bei Multi-Homed-Hosts verwendet, bei denen es wichtig ist, auf welchem Netzwerkadapter der Datenverkehr empfangen wird.
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);
}
Empfangen von Multicast-Datagramme
Man kann eine normale Datagram verwenden, um Unicast- und Broadcast-Datagramme zu senden und empfangen und Multicast-Datagramme zu senden. Um Multicast-Datagramme zu empfangen, benötigt man jedoch einen MulticastSocket. Der Grund dafür ist einfach, es muss zusätzliche Arbeit geleistet werden, um Multicast-Verkehr von allen Protokollschichten unter UDP zu steuern und zu empfangen.
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!
}
Für weitere Informationen:
Ist es möglich, dass jeder Client Broadcast-Gruppen senden und empfangen kann? (durch Definieren von 2 Sockets als DatagramSocket für Senden und MulticastSocket für Empfangen) – Razavi
Sie haben zu senden, dass von hinten nach vorne kommen. Sie empfangen Multicasts über eine MulticastSocket, aber Sie müssen sie nicht so senden: Sie können sie über eine DatagramSocket senden.
Ich bin mir nicht sicher, wie zutreffend der obige Kommentar ist. Ich konnte kein Multicast-Paket über einen normalen DatagramSocket senden. Erst als ich begann, eine MulticastSocket auf der Serverseite zu verwenden, zeigte sie mir den ausgehenden Datenverkehr, wenn ich die Pakete am Serverende schnüffelte. –
- 1. Docker empfängt Multicast-Datenverkehr
- 2. Android-Gerät empfängt kein Multicast-Paket
- 3. Java: Datagram und Proxy (Firewall)
- 4. Datagram - Bindung localhost Buchse
- 5. Auswählbare Multicast-Buchse (vor 1.7)
- 6. Datagram Packet FTP-Anwendung
- 7. Überprüfen, ob Multicast-Daten in der Multicast-Gruppe gesendet werden?
- 8. C++ Multicast-Daten-Feed-Filter
- 9. ActionCable empfängt keine Daten
- 10. Multicast-Pakete: Senden und Empfangen von Problemen
- 11. IOS empfängt Daten-Timeout CFsocket
- 12. Arduino Serial empfängt falsche Daten
- 13. Socket recv() empfängt keine Daten
- 14. Java NIO UDP Multicast - verworfene Pakete
- 15. Java Socket Senden von Daten
- 16. Java UDP Multicast, bestimmen, welche Gruppe gesendet Paket
- 17. Arduino empfängt keine seriellen Daten
- 18. Überschriebene Funktion empfängt keine Daten?
- 19. Socket empfängt keine Daten. Warum?
- 20. Seltsames Verhalten mit Datagram in UDP empfangen Funktion in Android
- 21. Java UDP DatagramSocket empfängt kein DatagramPacket
- 22. Multicast in JSP
- 23. Java Multicast Time to Live ist immer 0
- 24. Vertx: Daten von HTML nach Java senden
- 25. ServerSocket empfängt keine Daten in einer Schleife
- 26. Android empfängt zu viele Bluetooth-Debug-Daten
- 27. WCF-Dienst empfängt keine Daten im POST
- 28. Python rohe Multicast
- 29. Java sendet und empfängt Dateien über Sockets
- 30. Aktualisieren Multicast-Gruppenmitgliedschaft
Bitte Interpunktionszeichen verwenden und eine richtige Frage Titel schreiben! – Alexander