0
我有一个线程从设备接收数据。当涉及到myDatagramPacket.getAddress().getHostName()
行时,它会停止5-6秒,然后继续。DatagramPacket.getAddress()。getHostName()阻塞我的线程
当我尝试像“192.168.1.163”这样的硬编码IP时,它正在不停地工作。
我该如何解决这个问题?
有什么建议吗?
我有一个线程从设备接收数据。当涉及到myDatagramPacket.getAddress().getHostName()
行时,它会停止5-6秒,然后继续。DatagramPacket.getAddress()。getHostName()阻塞我的线程
当我尝试像“192.168.1.163”这样的硬编码IP时,它正在不停地工作。
我该如何解决这个问题?
有什么建议吗?
该行看起来像是执行反向DNS查找,这当然会很慢。
您可以尝试在没有查找的情况下修改逻辑,或者如果这不可行,请尝试缓存通话结果(以免多次支付时间)。它只返回一个代表IP的InetAddress(而不是调用getHostName(),使用getHostAddress()和/或toString()方法来获取发送者的IP地址。 )。
hi @Durandal。其实我需要的是检索我通过UDP接收数据的设备的ip。它是一个本地IP。 – 2012-08-03 12:19:26
OMG英雄:)当我使用* packet.getAddress()。toString()。substring(1)*(我使用substring因为/)我工作。请编辑您的帖子,我会将其标记为答案。 – 2012-08-03 12:30:39
谢谢@Durandal! – 2012-08-03 12:37:42