2014-10-03 88 views
-1

我是Haxe和我的第一個項目的新手,我想編寫一個簡單的程序,從服務器上下載一個文件。我的目標是C++。從服務器下載文件(C++目標)

我一直在尋找haxe.Http,但我不認爲這是適當的二進制數據,它有一個onDataresponseData財產,但這些都是字符串。我也不認爲它適合大文件,僅僅因爲它將所有響應數據存儲在內存中。

  • 是否有另一個班級,我應該使用,而不是haxe.Http
  • 我應該使用sys.net.Socket編寫我自己的HTTP解析器嗎?
+0

任何人都喜歡評論有關downvotes?如果你解釋這個問題,或許我可以解決這個問題。 – Drahcir 2014-10-03 14:04:20

+1

可能是因爲你正在走向離題的三連勝。你的前兩個問題看起來太寬泛了,最後一個問題不在SO的範圍內(請教教程)。 – 2014-10-03 14:12:33

+0

@CaptainObvlious感謝您的建議,我已經更新了這些問題。 – Drahcir 2014-10-03 14:16:36

回答

2

如果你是Haxe的初學者,作爲一個簡單的開始,我會簡單地嘗試使用同步(阻塞)方式,因爲它非常簡單,然後將內容寫入文件以檢查它是否真正起作用C++。

例如:

class TestHttp { 
    public static function main() { 
     var content : String = haxe.Http.requestUrl("http://somedomain/path/to/file"); 
     sys.io.File.write("/path/to/some/local/file", true).writeString(content); 
     trace(content.length + " bytes downloaded"); 
    } 
} 

如果這對你的作品在C++中,那麼你就可以花更多的時間來編寫一個異步解決方案,使用昂達甚至套接字。我現在不寫一個異步解決方案,因爲它需要你的程序有一個無限循環(while(true)),而且我不太確定這個時候你是否已經有一個主循環。

+0

另外不要忘記關閉File.write()返回的FileOutput。 – 2017-07-07 09:06:24