我有一个线程从设备接收数据。当涉及行myDatagramPacket.getAddress().getHostName()
时,它将停止5-6秒,然后继续。
当我尝试像“ 192.168.1.163”这样的硬编码ip时,它会不停地工作。
我怎么解决这个问题?
有什么建议么?
最佳答案
该行看起来像在执行反向DNS查找,这自然很慢。
您可以尝试在不查找的情况下修改逻辑,或者,如果无法进行修改,请尝试将调用结果缓存(这样就不必多次花费时间)。
要仅获取发送者的IP,只能与myDatagramPacket.getAddress()一起使用,它返回一个代表IP的InetAddress(而不是在其上调用getHostName(),而是使用getHostAddress()和/或toString())。