0

我有一个从设备接收数据的线程。当涉及到线路时myDatagramPacket.getAddress().getHostName(),它会停止 5-6 秒,然后继续。

当我尝试像“192.168.1.163”这样的硬编码ip时,它正在不停地工作。

我怎么解决这个问题?

有什么建议么?

4

1 回答 1

2

那条线看起来像是在执行Reverse DNS Lookup,那自然会很慢。

您可以尝试在不查找的情况下修改逻辑,或者如果不可能,请尝试缓存调用结果(这样您就不必多次支付时间)。

要仅获取发送者的 IP,请仅使用 myDatagramPacket.getAddress(),它会返回一个代表 IP 的 InetAddress(而不是在其上调用 getHostName(),而是使用 getHostAddress() 和/或 toString())。

于 2012-08-03T12:16:51.700 回答