用Java编写一个广播数据报程序。具体的自定义一个组播地址及端口号,广播端每隔5秒发送当前的时间;定义一个接收端接收广播端发送的数据,并将收到的数据显示在命令行窗口中。
时间: 2024-02-26 15:58:28 浏览: 34
好的,以下是Java代码实现。
1. 广播端类:
```java
import java.net.*;
import java.util.Date;
public class BroadcastSender {
public static void main(String[] args) throws Exception {
// 创建UDP客户端套接字
DatagramSocket socket = new DatagramSocket();
// 设置组播地址和端口号
InetAddress group = InetAddress.getByName("224.0.0.1");
int port = 9999;
// 定义要发送的数据
byte[] data = new Date().toString().getBytes();
// 创建要发送的数据报
DatagramPacket packet = new DatagramPacket(data, data.length, group, port);
// 循环发送数据
while (true) {
// 发送数据报
socket.send(packet);
// 等待5秒
Thread.sleep(5000);
}
}
}
```
2. 接收端类:
```java
import java.net.*;
public class BroadcastReceiver {
public static void main(String[] args) throws Exception {
// 创建UDP服务器套接字
DatagramSocket socket = new DatagramSocket(9999);
// 定义要接收的数据报个数
int num = 10;
// 循环接收数据
for (int i = 0; i < num; i++) {
// 创建要接收的数据报
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
// 接收数据报
socket.receive(packet);
// 解析数据报内容
String message = new String(packet.getData(), 0, packet.getLength());
// 显示接收到的数据
System.out.println("接收到数据:" + message);
}
// 关闭套接字
socket.close();
}
}
```
运行上述代码后,可以在命令行窗口中看到接收端接收到的广播数据。需要注意的是,广播地址为224.0.0.1,这是一个预留的组播地址,可以用于局域网内的广播通信。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)