java 使用udp接收数据的代码如何写呢
时间: 2024-03-08 18:50:02 浏览: 19
以下是 Java 使用 UDP 接收数据的代码示例:
```java
import java.net.*;
public class UDPServer {
public static void main(String args[]) throws Exception {
DatagramSocket serverSocket = new DatagramSocket(9876); // 创建 DatagramSocket 对象,并指定端口号
byte[] receiveData = new byte[1024]; // 创建接收数据的缓冲区
while (true) {
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket); // 接收数据包
String sentence = new String(receivePacket.getData(), 0, receivePacket.getLength()); // 将接收到的数据转成字符串
InetAddress IPAddress = receivePacket.getAddress(); // 获取发送方的 IP 地址
int port = receivePacket.getPort(); // 获取发送方的端口号
System.out.println("Received: " + sentence + " from " + IPAddress + ":" + port);
}
}
}
```
在上面的代码中,我们创建了一个 DatagramSocket 对象,并指定了端口号为 9876。然后进入一个无限循环,通过 `serverSocket.receive(receivePacket)` 方法接收来自网络上的数据包,接收到的数据存储在 `receivePacket.getData()` 中。我们将其转换为字符串并输出到控制台上。
注意,这里的 `receivePacket.getAddress()` 方法可以获取发送方的 IP 地址,而 `receivePacket.getPort()` 方法可以获取发送方的端口号。这样我们就可以知道数据从哪里来。