android udp 接收与发送
时间: 2023-09-29 21:10:09 浏览: 100
在 Android 中使用 UDP 协议进行数据的接收和发送可以通过 DatagramSocket 类来实现。
UDP 数据发送:
```java
try {
// 创建 DatagramSocket 对象
DatagramSocket datagramSocket = new DatagramSocket();
// 待发送的数据
String data = "Hello, UDP!";
byte[] sendData = data.getBytes();
// 创建一个 InetAddress 对象,表示发送目的地的 IP 地址
InetAddress ipAddress = InetAddress.getByName("192.168.1.100");
// 创建一个 DatagramPacket 对象,表示待发送的数据包
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, ipAddress, 12345);
// 发送数据
datagramSocket.send(sendPacket);
// 关闭 DatagramSocket
datagramSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
```
UDP 数据接收:
```java
try {
// 创建 DatagramSocket 对象,并指定接收的端口号
DatagramSocket datagramSocket = new DatagramSocket(12345);
// 创建一个空的 DatagramPacket 对象,用于接收数据
byte[] receiveData = new byte[1024];
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
// 接收数据
datagramSocket.receive(receivePacket);
// 处理接收到的数据
String data = new String(receivePacket.getData(), 0, receivePacket.getLength());
Log.d("UDP", "Received: " + data);
// 关闭 DatagramSocket
datagramSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
```
需要注意的是,UDP 是无连接的协议,因此发送和接收的数据包都需要指定目的地的 IP 地址和端口号。此外,UDP 协议也没有可靠性保证,因此需要进行数据的校验和处理。
阅读全文