使用UDP协议编写一个网络程序,设置接收端程序监听端口为8001,发送端发送的数据是“hello world”。 提示:1)使用new DatagramSocket(8001)构造方法创建接收端的DatagramSocket对象,调用receive()方法接收数据 2)发送端和接收端使用DatagramPacket封装数据,在创建发送端的DatagramPacket对象时需要指定目标IP地址和端口号,端口号要和接收端监听的端口号一致 3)发送端使用send()方法发送数据4)使用close()方法释放Socket资源
时间: 2024-03-11 13:47:26 浏览: 14
好的,以下是使用Java编写的UDP网络程序,实现发送端发送"hello world"数据至接收端监听的8001端口,并打印接收到的数据:
发送端代码:
```java
import java.net.*;
public class UDPSender {
public static void main(String[] args) throws Exception {
// 1. 创建DatagramSocket对象
DatagramSocket socket = new DatagramSocket();
// 2. 封装数据
byte[] data = "hello world".getBytes();
InetAddress address = InetAddress.getByName("localhost");
DatagramPacket packet = new DatagramPacket(data, data.length, address, 8001);
// 3. 发送数据
socket.send(packet);
// 4. 释放资源
socket.close();
}
}
```
接收端代码:
```java
import java.net.*;
public class UDPReceiver {
public static void main(String[] args) throws Exception {
// 1. 创建DatagramSocket对象,监听8001端口
DatagramSocket socket = new DatagramSocket(8001);
// 2. 接收数据
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
// 3. 处理数据
String message = new String(packet.getData(), 0, packet.getLength());
System.out.println("接收到的数据:" + message);
// 4. 释放资源
socket.close();
}
}
```
需要注意的是,由于本地测试,发送端指定的目标IP地址为localhost,如果发送端和接收端不在同一台主机上,需要指定接收端的真实IP地址。