【问题标题】:Java: Display Clients IP and port numbersJava:显示客户端 IP 和端口号
【发布时间】:2013-03-24 14:58:22
【问题描述】:

您好,我编写了一个小型 UDP 服务器程序。 我知道显示主机 IP 的代码很容易使用以下代码:

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

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

【问题讨论】:

标签: java udp


【解决方案1】:

当您收到您的 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();但我收到此错误类型不匹配:无法从 InetAddress 转换为字符串。你能给我一个代码示例吗?
  • 无法从 DatagramPacket 类型中对非静态方法 getAddress() 进行静态引用。谢谢,但我现在得到了这个错误哈哈
  • 好的,我们正在朝着目标前进 :) 请查看我的编辑以获取有关如何使用它的完整示例
【解决方案2】:

关于该样本:String clientip = DatagramPacket.getAddress(); 你为什么不把它投给String

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-29
    • 2015-01-11
    • 2012-12-04
    • 2021-10-10
    • 1970-01-01
    • 2013-10-28
    • 2011-01-08
    • 2011-01-19
    相关资源
    最近更新 更多