分布式通信-tcp/ip 广播. V) M2 _3 p$ H: [- d
3 g/ t! k2 l7 B2 V6 B0 X
服务端 /** * 广播 */public class MulticastServer { public static void main(String[] args) { try { //地址是224.0.0.0 --239.255.255.255 InetAddress group = InetAddress.getByName("225.0.0.0"); MulticastSocket socket = new MulticastSocket(); for(int i=0;i<10;i++){ String data ="hello world"; byte[] bytes = data.getBytes(); socket.send(new DatagramPacket(bytes,bytes.length,group,8888)); System.out.println("send data"); TimeUnit.SECONDS.sleep(2); } } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } }}# _9 C" t( t6 r. e" x5 \/ ^6 T+ B* c
客户端,可以同时有多个客户端 public class MulticastClient { public static void main(String[] args) { //地址是224.0.0.0 --239.255.255.255 try { InetAddress group = InetAddress.getByName("225.0.0.0"); MulticastSocket socket = new MulticastSocket(8888); socket.joinGroup(group); // 加到指定的組裡面 byte[] buf = new byte[256]; while (true){ DatagramPacket msgPacket = new DatagramPacket(buf, buf.length); //读不到一直处于阻塞状态 socket.receive(msgPacket); System.out.println("receive data"); String msg = new String(msgPacket.getData()); System.out.println("接收到的数据:"+msg); } } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
9 j( j- h# E5 {8 V4 l/ w
1 ~9 C& }* e9 V7 x4 S: @
# g# `2 w7 p+ j转载于:https://www.cnblogs.com/newlangwen/p/10383850.html
6 b6 c- D8 N- g9 N& d5 s/ b6 `, Q) v% Y7 _ |* S/ u) Y
|