java 使用udp接收数据时如何查看发送方的发送端口
时间: 2023-12-19 11:06:23 浏览: 77
java 中模拟UDP传输的发送端和接收端实例详解
UDP协议是无连接协议,不需要在建立连接后才可以传输数据,也没有需要维护连接状态的开销,因此在UDP传输数据时,无法像TCP那样通过accept()方法获取对方的IP地址及端口号。如果需要知道发送方的端口号,可以在接收到数据后通过获取DatagramPacket对象获取发送方的信息。具体实现代码如下:
```java
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
DatagramSocket socket = new DatagramSocket(8000);
socket.receive(packet); //接收报文
//获取发送方的IP地址和端口号
String ipAddress = packet.getAddress().getHostAddress();
int port = packet.getPort();
```
在上面的代码中,DatagramSocket对象的构造方法中传入的参数8000代表在本机指定端口号8000上监听UDP数据包。当收到UDP数据包后,通过DatagramPacket对象的getAddress()和getPort()方法获取对方的IP地址和端口号。
阅读全文