diff --git a/src/main/java/info/istlab/ServerTester/AddPanel.java b/src/main/java/info/istlab/ServerTester/AddPanel.java index 604b9d4..de809a4 100644 --- a/src/main/java/info/istlab/ServerTester/AddPanel.java +++ b/src/main/java/info/istlab/ServerTester/AddPanel.java @@ -121,7 +121,7 @@ System.out.println("IP Address: " + address.getHostAddress()); System.out.println("Subnet Mask: " + subnetMaskString); System.out.println("Network Address: " + networkAddressString); - UDPClient.networkAddress = networkAddressString; + App.ipAddr = address.getHostAddress(); addresses.add(address.getHostAddress()); } } diff --git a/src/main/java/info/istlab/ServerTester/App.java b/src/main/java/info/istlab/ServerTester/App.java index 39f5f25..2eda36a 100644 --- a/src/main/java/info/istlab/ServerTester/App.java +++ b/src/main/java/info/istlab/ServerTester/App.java @@ -7,6 +7,7 @@ public static String userhome; public static String userdir; public static boolean isJAR = false; + public static String ipAddr; static { String os = System.getProperty("os.name").toLowerCase(); @@ -67,6 +68,8 @@ } // 近隣のホスト情報を集めるUDPサーバ - myhost.setUdpServer(new UDPServer(54320)); + // myhost.setUdpServer(new UDPServer(54320)); + new MulticastSender(); + new MulticastReceiver(); } } diff --git a/src/main/java/info/istlab/ServerTester/MulticastReceiver.java b/src/main/java/info/istlab/ServerTester/MulticastReceiver.java new file mode 100644 index 0000000..0e311e1 --- /dev/null +++ b/src/main/java/info/istlab/ServerTester/MulticastReceiver.java @@ -0,0 +1,37 @@ +package info.istlab.ServerTester; + +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.InetAddress; +import java.net.MulticastSocket; + +public class MulticastReceiver implements Runnable{ + Thread thread; + MulticastSocket socket; + public MulticastReceiver() { + try { + socket = new MulticastSocket(54320); + InetAddress group = InetAddress.getByName("224.0.0.1"); + socket.joinGroup(group); + } catch (IOException e) { + e.printStackTrace(); + } + thread = new Thread(this); + thread.start(); + } + + public void run(){ + while(thread != null){ + byte[] buffer = new byte[1024]; + DatagramPacket packet = new DatagramPacket(buffer, buffer.length); + try { + socket.receive(packet); + } catch (IOException e) { + e.printStackTrace(); + } + String message = new String(packet.getData(), 0, packet.getLength()); + System.out.println("受信: " + message); + + } + } +} diff --git a/src/main/java/info/istlab/ServerTester/MulticastSender.java b/src/main/java/info/istlab/ServerTester/MulticastSender.java new file mode 100644 index 0000000..ebcd863 --- /dev/null +++ b/src/main/java/info/istlab/ServerTester/MulticastSender.java @@ -0,0 +1,50 @@ +package info.istlab.ServerTester; + +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.InetAddress; +import java.net.MulticastSocket; +import java.util.Random; + +public class MulticastSender implements Runnable { + Thread thread; + MulticastSocket socket = null; + public String message; + String multicastAddress = "224.0.0.1"; // マルチキャストアドレス + public int port = 54320; + InetAddress group; + + public MulticastSender() { + try { + socket = new MulticastSocket(); + group = InetAddress.getByName(multicastAddress); + } catch (IOException e) { + e.printStackTrace(); + } + thread = new Thread(this); + thread.start(); + } + + @Override + public void run() { + Random rand = new Random(); + while(thread != null){ + String message = "from "+App.ipAddr + " "+rand.nextInt(100) ; + byte[] data = message.getBytes(); + DatagramPacket packet = new DatagramPacket(data, data.length, group, port); + try { + socket.send(packet); + } catch (IOException e) { + e.printStackTrace(); + } + + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + } + +}