我正在研究通過URLConnection與服務器通信的項目。由於長DNS包造成的與服務器的Android通信非常緩慢
下面是代碼:
URL theSite;
theSite = new URL(TestURL);
URLConnection con = theSite.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
然而,這是考慮我的摩托羅拉Atrix和三星Nexus S約20秒或更多的服務器談話時。 (信息最終會發送它的接縫)看着wireshark中的數據包,我發現有很多組的DNS數據包被髮送,每個數據包之間大約有3-5秒。這可能是溝通緩慢的原因。
這是兩個示例DNS數據包。 (我已經改變了IP的,除了8.8.8.8的目標,我認爲這是谷歌)
Time Source Destination Protocol Info
20.308792 10.10.120.104 8.8.8.8 DNS Standard query PTR 3.120.10.10.in-addr.arpa
25.360726 10.10.120.104 8.8.8.8 DNS Standard query PTR 3.120.10.10.in-addr.arpa
不管怎麼說,今天這個事情出藍色。但很顯然,這些DNS調用導致服務器和我的設備之間的通信速度緩慢。
另一件值得注意的事情是,我也嘗試了三星Galaxy 10.1平板電腦上的EXACT相同的代碼,它工作正常。查看數據包追蹤,平板電腦不會有額外的DNS呼叫。
我沒有控制服務器,並且有數據包發送給我。有沒有人有什麼建議?我猜測這是一個服務器相關的問題。如果有人有任何想法,非常感謝。
謝謝!
一切都已經過測試,迄今只有通過WiFi。感謝評論,我會研究它。如果你能弄清楚,請告訴我。 – Dave 2012-02-17 03:22:05
原來在服務上有一個xml標誌來重定向ipv6。這解決了我們的問題。 – edthethird 2012-02-17 16:23:58