Java でチャット サーバー マルチキャスト プログラムを作成しようとしていますが、期待どおりに動作しません。
ChatClient.java と ChatServer.java (以下のコード) の 2 つのファイルがあります。
ChatClient はサーバーにメッセージを送信します。サーバーはメッセージを受信して出力することを意図していますが、メッセージを受信しません。なぜでしょうか?
クライアントコード:
public class ChatClient {
public static void main(String args[]) throws Exception {
MulticastSocket chat = new MulticastSocket(8885);
InetAddress group = InetAddress.getByName("224.2.2.5");
chat.joinGroup(group);
String msg = "";
System.out.println("Type a message for the server:");
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
msg = br.readLine();
DatagramPacket data = new DatagramPacket(msg.getBytes(), 0, msg.length(), group, 8885);
chat.send(data);
chat.close();
}
}
サーバーコード:
public class ChatServer {
public static void main(String args[]) throws Exception {
MulticastSocket server = new MulticastSocket(8885);
InetAddress group = InetAddress.getByName("224.2.2.5");
//getByName - returns IP address of the given host
server.joinGroup(group);
boolean infinite = true;
/* Server continually receives data and prints them */
while(infinite) {
byte buf[] = new byte[1024];
DatagramPacket data = new DatagramPacket(buf, buf.length);
server.receive(data);
String msg = new String(data.getData()).trim();
System.out.println(msg);
}
server.close();
}
}