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