From a39f87ab005c781e522b6473124a00d1e6bce043 Mon Sep 17 00:00:00 2001 From: Sebastian Rieger Date: Mon, 20 Nov 2017 23:36:14 +0100 Subject: [PATCH] initial multicastsocket example --- .../multicast/UDPMulticastConsumer.java | 25 +++++++++++++++++ .../multicast/UDPMulticastProducer.java | 27 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 VerteilteSysteme-Examples/src/verteiltesysteme/socket/multicast/UDPMulticastConsumer.java create mode 100644 VerteilteSysteme-Examples/src/verteiltesysteme/socket/multicast/UDPMulticastProducer.java diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/socket/multicast/UDPMulticastConsumer.java b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/multicast/UDPMulticastConsumer.java new file mode 100644 index 0000000..7c48b2b --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/multicast/UDPMulticastConsumer.java @@ -0,0 +1,25 @@ +/* Angelehnt an Kurose/Ross Computernetzwerke (bis 5e Java, ab 6e Python) */ + +package verteiltesysteme.socket.multicast; + +import java.net.*; + +class UDPMulticastConsumer { + public static void main(String args[]) throws Exception { + String groupname = "224.1.1.1"; + int udpPort = 36040; + @SuppressWarnings("resource") + MulticastSocket mcastSocket = new MulticastSocket(udpPort); + InetAddress IPAddress = InetAddress.getByName(groupname); + mcastSocket.joinGroup(IPAddress); + + byte[] receiveData = new byte[1024]; + + while (true) { + DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); + mcastSocket.receive(receivePacket); + String sentence = new String(receivePacket.getData(), 0, receivePacket.getLength()); + System.out.println(sentence); + } + } +} diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/socket/multicast/UDPMulticastProducer.java b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/multicast/UDPMulticastProducer.java new file mode 100644 index 0000000..d81b486 --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/socket/multicast/UDPMulticastProducer.java @@ -0,0 +1,27 @@ +/* Angelehnt an Kurose/Ross Computernetzwerke (bis 5e Java, ab 6e Python) */ + +package verteiltesysteme.socket.multicast; + +import java.io.*; +import java.net.*; + +class UDPMulticastProducer { + public static void main(String args[]) throws Exception { + String groupname = "224.1.1.1"; + int udpPort = 36040; + BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); + MulticastSocket mcastSocket = new MulticastSocket(udpPort); + InetAddress IPAddress = InetAddress.getByName(groupname); + mcastSocket.joinGroup(IPAddress); + + byte[] sendData = new byte[1024]; + + String sentence = inFromUser.readLine(); + sendData = sentence.getBytes(); + + DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, udpPort); + mcastSocket.send(sendPacket); + mcastSocket.leaveGroup(IPAddress); + mcastSocket.close(); + } +}