package info.istlab.ServerTester; import java.awt.Component; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import javax.swing.JPanel; public class UDPClient { public static String networkAddress; public UDPClient(JPanel mainPanel, int portnum) { // 情報収集 StringBuffer sb = new StringBuffer(); for(Component c: mainPanel.getComponents()){ if(c instanceof ServerPanel){ ServerPanel sp = (ServerPanel)c; sb.append(sp.getAvailableServices()+"\n"); } if (c instanceof ServerPanel4WS) { ServerPanel4WS sp = (ServerPanel4WS) c; sb.append(sp.getAvailableServices() + "\n"); } } DatagramSocket socket = null; try { // クライアントソケットを作成 socket = new DatagramSocket(); socket.setBroadcast(true); InetAddress serverAddress = InetAddress.getByName("10.104.91.255"); // 送信メッセージを作成 String message = sb.toString(); byte[] messageData = message.getBytes(); // データグラムパケットを作成 DatagramPacket packet = new DatagramPacket( messageData, messageData.length, serverAddress, portnum ); // メッセージを送信 socket.send(packet); System.out.println("メッセージをUDP:"+portnum+"に送信しました:\n" + message); // サーバーからの応答を受信 // byte[] buffer = new byte[1024]; // DatagramPacket responsePacket = new DatagramPacket(buffer, buffer.length); // socket.receive(responsePacket); // // 受信したデータを文字列に変換 // String response = new String(responsePacket.getData(), 0, responsePacket.getLength()); // System.out.println("サーバーからの応答: " + response); } catch (Exception e) { e.printStackTrace(); } finally { if (socket != null && !socket.isClosed()) { socket.close(); } } } }