简单的组播测试

public class Server extends Thread {

private int PORT = 2012;// 发送组播信息的目标端口
private String IP = "225.0.0.0";// 用于组播的IP

public void sendMsg() throws IOException {
while (true) {
String msg = "这是组播发的消息!";
byte[] date = msg.getBytes();
// 创建组播地址对象
InetAddress address = InetAddress.getByName(IP);
// 数据包,将其发送到网关上
java.net.DatagramPacket packet = new java.net.DatagramPacket(date,
date.length, address, PORT);
// 创建组播Socket,随机分配一个端口来进行组播信息的发送
java.net.MulticastSocket socket = new java.net.MulticastSocket();
try {
// 发送组播的消息
socket.send(packet);
System.out.println("组播发的消息是:" + msg);
Server.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

public static void main(String args[]) throws IOException {
Server s = new Server();
s.sendMsg();
}
}

public class Client {
private int PORT = 2012;// 接收组播信息的端口
private String IP = "225.0.0.0";// 用于组播的IP

public void reciveMsg() throws Exception {

// 创建组播地址对象
InetAddress address = InetAddress.getByName(IP);
byte[] date = new byte[100];
// 接收信息的数据包对象
java.net.DatagramPacket packet = new java.net.DatagramPacket(date,
date.length);
// 创建组播Socket对象,在特定的端口上接收数据
java.net.MulticastSocket socket = new java.net.MulticastSocket(PORT);
// 加入到组中,才可以接收到消息
socket.joinGroup(address);
while (true) {
socket.receive(packet);
String s = (new String(date).trim() + "from" + packet.getAddress()
+ ":" + packet.getPort());
System.out.println("收到:" + s);
}
}

public static void main(String args[]) throws Exception {
Client c = new Client();
c.reciveMsg();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值