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

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

我怎么解决这个问题?

有什么建议么?

最佳答案

该行看起来像在执行反向DNS查找,这自然很慢。

您可以尝试在不查找的情况下修改逻辑,或者,如果无法进行修改,请尝试将调用结果缓存(这样就不必多次花费时间)。

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

08-26 01:37