我有一个从设备接收数据的线程。当它到达myDatagramPacket.getAddress().getHostName()行时,它会停止5-6秒,然后继续。
当我尝试像"192.168.1.163“这样的硬编码ip时,它不间断地工作。
我该如何解决这个问题?
有什么建议吗?
发布于 2012-08-03 20:16:52
这一行看起来像是在执行反向DNS查找,这自然会很慢。
您可以尝试在不进行查找的情况下修改逻辑,或者如果不可能这样做,则尝试缓存调用的结果(这样您就不会多次花费时间)。
要只获取发送者的IP,只需使用myDatagramPacket.getAddress(),它将返回一个表示IP的InetAddress (而不是调用getHostName(),而是使用getHostAddress()和/或toString())。
https://stackoverflow.com/questions/11795167
复制相似问题