2013-07-25 50 views
0

我很匆忙,所以我會盡快完成。如果需要,當我回到我的電腦時,我會提供更多信息。(Android)文件通常在一臺主機上下載,但在另一臺主機上「立即完成」

我正在爲Android創建一個下載/上傳速度測試應用程序。下面是一些代碼:

InetAddress Host = InetAddress.getByName(myHoseName); 
Socket s = new Socket(Host,80); 

//prepare data stream for each direction 
      OutputStream output = s.getOutputStream(); 
      InputStream input = s.getInputStream(); 

//send command 
      output.write(("GET "+ myFilePath +" HTTP/1.0\r\n").getBytes()); 
      output.write("Accept: */*\r\n".getBytes()); 
      output.write("\r\n".getBytes()); 

while ((DownloadedByte += input.read(BufferData,0,BufferData.length)) != -1) 
      { 
       //download started... bla bla bla 

問題:

  • 我有2臺主機上相同的測試文件。 (名字是test.jpg放在)

  • 一點看是這樣的:xxx.xxx.xxx.xxx(這是一個IP地址)

  • 另外一個就是域名如my.testhost.com

  • 問題是,當我試圖從xxx.xxx.xxx.xxx下載,一切都很好

  • 但是,當我嘗試從my.testhost.com下載,下載過程與旁邊沒有立即完成在Logcat上顯示

我希望這個信息足以開始解決這個問題。我的道歉,但我會在稍後提供更多信息,也許明天。

非常感謝,並很快與您交談!

最佳, 吉滴

回答

1

這看起來很像下載從my.testhost.com失敗,爲此出現立即完成,雖然它只是中止。檢查下載的數據以排除此情況。

由於各種原因可能發生故障。最有可能的是主機名無法解析(名稱my.testhost.com的IP查找不起作用),或者主機只能通過代理服務器訪問,您需要先進行配置才能進行下載。

+0

嗨。非常感謝您的回答。我同意你的意見。我會看看我能做些什麼關於代理。與此同時,我有更多的信息可以分享。正在開發相同速度測試應用程序的iOS版本的我的團隊成員似乎下載了沒有問題的文件。但他使用的是HTTP,而不是套接字。 – Kakyoin

+0

這也指向代理問題 - 如果您使用套接字,則不會使用代理。如果您使用某些具有HTTP功能的類,則很可能使用系統的代理設置來定位和使用代理服務器。那麼也可以使用java.net.URLConnection,因爲這個Java的代理設置將被自動使用。您可以從URLConnection中獲取輸入流,類似於如何從套接字中抓取輸入流,並以完全相同的方式進行速度測試。 –

+0

感謝您的回答。看起來像這是原因。 =) – Kakyoin

相關問題