UDP协议
- -UDP协议是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个Socket只是发送,接收数据的对象,因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器的概念
- -Java提供了DatagramSocket类作为基于UDP协议的Socket.
UDP发送数据
构造方法
相关方法
发送数据的步骤接收数据的步骤
- 创建发送端的Socket对象(DatagramSocket)
- 创建数据,并把数据打包
- 调用DatagramSocket对象的方法发送数据
- 关闭发送端
代码演示:
public static void main(String[] args) throws Exception {
// 创建发送端Socket对象(DatagramSocket)
DatagramSocket ds = new DatagramSocket();
// 创建存储数据的箱子,将地址封装进去
String s = "需要传输文件的地址 ";
byte[] bytes = s.getBytes();
// 设置访问的IP地址
InetAddress address = InetAddress.getByName("255.255.255.255");
int port = 6666;
DatagramPacket dp = new DatagramPacket(bytes, bytes.length, address, port);
// 发送数据 将读取到的数据发送过去
ds.send(dp);
// 释放资源
ds.close();
}
UDP接收数据
构造方法
方法名 | 说明 |
---|---|
DatagramPacket(byte[] buf, int len) | 创建一个DatagramPacket用于接收长度为len的数据包 |
相关方法
方法名 | 说明 |
---|---|
byte[] getData() | 返回数据缓冲区 |
int getLength() | 返回要发送的数据的长度或接收的数据的长度 |
.发接收数据的步骤
- 创建接收端的Socket对象(DatagramSocket)
- 创建一个数据包,用于接收数据
- 调用DatagramSocket对象的方法接收数据
- 解析数据包,并把数据在控制台显示
- 关闭接收端
示例代码
public static void main(String[] args) throws IOException {
// 1. 创建接收端的Socket对象(DatagramSocket)
DatagramSocket ds = new DatagramSocket(6666);
// 2. 创建一个数据包,用于接收数据
DatagramPacket dp = new DatagramPacket(new byte[1024],1024);
// 3. 调用DatagramSocket对象的方法接收数据
ds.receive(dp);
// 4. 解析数据包,并把数据在控制台显示
byte[] data = dp.getData();
int length = dp.getLength();
System.out.println(new String(data,0,length));
// 5. 关闭接收端
ds.close();
}