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

您好我已经写了一个小的UDP服务器程序。 我知道使用以下代码显示主机IP的代码很简单:

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

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

当您收到UDP DatagramPacket您可以通过DatagramPacket.getAddress()检索数据包所在的远程IP

编辑如果您希望获得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()); 

关于该示例: String clientip = DatagramPacket.getAddress(); 你为什么不把它投到String

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

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