Java中的多播套接字

时间:2013-04-03 20:47:02

标签: java networking network-programming client-server

Hey Iam尝试用Java编写聊天服务器多播程序,但它没有按预期工作。

我有两个文件,ChatClient.java和ChatServer.java(下面的代码)。

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();
 }
}

0 个答案:

没有答案