客户端不能获得数据,不知道哪里出错了..请大家指教下.
public class MCSserver { public static void main(String[] args){
try{
MulticastSocket mcs = new MulticastSocket();
byte[] b = new byte[0];
InetAddress ia = InetAddress.getByName("231.0.0.0");
DatagramPacket dgp = new DatagramPacket(b,0,ia,4321);
for(int i = 0;i<10;i++){
byte[] d = new String("sss"+i).getBytes();
dgp.setData(d);
dgp.setLength(d.length);
mcs.send(dgp);
}
System.out.println("MCSserver over 1");
mcs.close();
System.out.println("MCSserver over 2");
}catch(IOException io){
System.out.println("MCSserver IOException"+io);
}

}
}public class MCScline_1 {
public static void main(String[] args) {
try{
MulticastSocket mcs = new MulticastSocket(4321);
System.out.println("MCScline_1 over 1");
InetAddress ia = InetAddress.getByName("231.0.0.0");
System.out.println("MCScline_1 over 2");
mcs.joinGroup(ia);
System.out.println("MCScline_1 over 3");


for(int i = 0;i<10;i++){
byte[] b = new byte[256];
DatagramPacket dgp = new DatagramPacket(b,b.length);
System.out.println("MCScline_1 over "+i);
mcs.receive(dgp);//运行不了??
//System.out.println("MCScline_1 over "+i);
byte[] d = new byte[dgp.getLength()];
System.arraycopy(dgp.getData(), 0, d,0, dgp.getLength());
System.out.println(new String(d));
}
System.out.println("MCScline_1 over");
mcs.leaveGroup(ia);
System.out.println("MCScline_1 over");
mcs.close();
System.out.println("MCScline_1 over");
}catch(IOException io){
System.out.println("MCScline_1 IOException "+io);
}

}}先谢谢大家

解决方案 »

  1.   

    以上程序没有问题,可以正常运行!客户端先打开,服务器后打开!!!
    这是客户端处理的结果:
    MCScline_1 over 1
    MCScline_1 over 2
    MCScline_1 over 3
    MCScline_1 over 0
    sss0
    MCScline_1 over 1
    sss1
    MCScline_1 over 2
    sss2
    MCScline_1 over 3
    sss3
    MCScline_1 over 4
    sss4
    MCScline_1 over 5
    sss5
    MCScline_1 over 6
    sss6
    MCScline_1 over 7
    sss7
    MCScline_1 over 8
    sss8
    MCScline_1 over 9
    sss9
    MCScline_1 over
    MCScline_1 over
    MCScline_1 over