package com.socket.udp.client; import java.io.IOException; import java.net.DatagramPacket; import java.net.InetAddress; import java.net.MulticastSocket; import java.nio.charset.Charset; public class MulticastClient { public static void main(String args[]) throws IOException { MulticastSocket socket = new MulticastSocket(4446); // 创建4446端口的广播套接字 InetAddress address = InetAddress.getByName("230.0.0.1"); // 得到230.0.0.1的地址信息 socket.joinGroup(address); // 使用joinGroup()将广播套接字绑定到地址上 DatagramPacket packet; for(;;){ byte[] buf = new byte[256]; // 创建缓冲区 packet = new DatagramPacket(buf, buf.length); // 创建接收数据报 socket.receive(packet); // 接收 byte[] tmp = packet.getData(); String received = new String(tmp,Charset.forName("UTF-8")); if("-End-".equals(received.trim())){ break; } // 由接收到的数据报得到字节数组, // 并由此构造一个String对象 System.out.println("Quote of theMoment:" + received); // 打印得到的字符串 } // 循环5次 socket.leaveGroup(address); // 把广播套接字从地址上解除绑定 socket.close(); // 关闭广播套接字 } }