Newer
Older
ServerTester / src / main / java / info / istlab / ServerTester / UDPClient.java
@motoki miura motoki miura on 19 Aug 2 KB d
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();
            }
        }
    }
}