Java:显示客户端IP和端口号

Java:显示客户端IP和端口号,java,udp,Java,Udp,你好,我写了一个小的UDP服务器程序。 我知道使用以下代码可以轻松显示主机IP: System.out.println("Listening Port: " + serverSocket.getLocalPort()); System.out.println("IP: " + myIp.getHostAddress()); 有没有办法显示连接到服务器的客户端的IP和端口号?当您收到UDPDatagramPacket时,您可以通过DatagramPacket.getAddress() 编辑 如果

你好,我写了一个小的UDP服务器程序。 我知道使用以下代码可以轻松显示主机IP:

System.out.println("Listening Port: " + serverSocket.getLocalPort());
System.out.println("IP: " + myIp.getHostAddress());

有没有办法显示连接到服务器的客户端的IP和端口号?

当您收到UDP
DatagramPacket
时,您可以通过
DatagramPacket.getAddress()

编辑 如果希望获得IP地址的字符串表示形式,只需使用
DatagramPacket.getAddress().toString()

例如:

DatagramPacket p = new DatagramPacket(buffer, 
buffer.length); 
ds.receive(p);  // Receive data here... 
System.out.println("Received data packet from :"+p.getAddress().toString()); 

当您收到UDP
DatagramPacket
时,您可以通过
DatagramPacket.getAddress()

编辑 如果希望获得IP地址的字符串表示形式,只需使用
DatagramPacket.getAddress().toString()

例如:

DatagramPacket p = new DatagramPacket(buffer, 
buffer.length); 
ds.receive(p);  // Receive data here... 
System.out.println("Received data packet from :"+p.getAddress().toString()); 

关于该示例:
stringclientip=DatagramPacket.getAddress()
为什么不直接将其转换为
String

String clientip = (String) DatagramPacket.getAddress();

虽然我目前还没有真正的Java编译器。但是试试看。很快就会回来。

关于该示例:
字符串clientip=DatagramPacket.getAddress()
为什么不直接将其转换为
String

String clientip = (String) DatagramPacket.getAddress();

虽然我目前还没有真正的Java编译器。但是试试看。很快就会回来。

旁注:请阅读您之前的问题。这是TCP代码。你确定你的意思是UDP吗?旁注:请阅读你之前的问题。这是TCP代码。你确定你是指UDP吗?我厌倦了这个字符串clientip=DatagramPacket.getAddress();但我得到的错误类型不匹配:无法从InetAddress转换为字符串。你能给我一个代码示例吗?不能从DatagramPacket类型对非静态方法getAddress()进行静态引用。谢谢你的帮助,但是我现在得到了这个错误,哈哈,我们正在朝着这个目标前进:)请参阅我的编辑,以获得关于如何使用这个字符串的完整示例clientip=DatagramPacket.getAddress();但我得到的错误类型不匹配:无法从InetAddress转换为字符串。你能给我一个代码示例吗?不能从DatagramPacket类型对非静态方法getAddress()进行静态引用。谢谢你的帮助,但我现在得到了这个错误哈哈,我们正在朝着目标前进:)请参阅我的编辑,以获得一个关于如何使用它的完整示例