0

デバイスからデータを受信するスレッドがあります。ラインmyDatagramPacket.getAddress().getHostName()になると、5〜6秒間停止してから続行します。

「192.168.1.163」のようなハードコードされた IP を試したところ、ノンストップで動作しています。

どうすればこの問題を解決できますか?

助言がありますか?

4

1 に答える 1

2

その行はReverse DNS Lookupを実行しているように見えますが、当然遅くなります。

ルックアップなしでロジックの変更を試みるか、それが不可能な場合は、呼び出しの結果をキャッシュしてみてください (そのため、時間を何度も支払う必要はありません)。

送信者の IP を取得するには、myDatagramPacket.getAddress() のみを使用します。IP を表す InetAddress を返します (getHostName() を呼び出す代わりに、getHostAddress() および/または toString() を使用します)。

于 2012-08-03T12:16:51.700 に答える