我有一个从设备接收数据的线程。当到达 myDatagramPacket.getAddress().getHostName()
行时,它会停止 5-6 秒,然后继续。
当我尝试像“192.168.1.163”这样的硬编码 IP 时,它正在不间断地工作。
如何解决这个问题?
有什么建议吗?
最佳答案
该行看起来执行反向 DNS 查找,这自然会很慢。
您可以尝试在不进行查找的情况下修改逻辑,或者如果不可能,请尝试缓存调用结果(这样您就不必多次支付时间)。
要获取发送者的 IP,请仅使用 myDatagramPacket.getAddress(),它返回代表 IP 的 InetAddress(而不是对其调用 getHostName(),而是使用 getHostAddress() 和/或 toString()) .
关于java - DatagramPacket.getAddress().getHostName() 正在阻塞我的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11795167/