2014-10-03 2 views
-1

Я новичок в Haxe и для своего первого проекта хочу написать простую программу, которая будет загружать файл с сервера. Я нацелен на C++.Загрузите файл с сервера (цель C++)

Я смотрел на haxe.Http, но я не думаю, что он подходит для бинарных данных, он имеет onData и responseData собственности, но они являются строками. Я также не думаю, что он был бы подходящим для больших файлов, просто потому, что он хранит все данные ответа в памяти.

  • Есть ли другой класс, который я должен использовать вместо haxe.Http?
  • Должен ли я писать свой собственный парсер HTTP, используя sys.net.Socket?
+0

Никто не заинтересован в комментариях относительно downvotes? Возможно, я могу исправить вопрос, если вы объясните проблему. – Drahcir

+1

Наверное, потому, что вы на пути к не по теме trifecta. Ваши первые два вопроса кажутся слишком широкими, и последний из них не входит в сферу SO (с просьбой о проведении учебников). –

+0

@CaptainObvlious Спасибо за совет, я обновил вопросы. – Drahcir

ответ

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++, то вы можете потратить больше времени на написание асинхронного решения, используя Ondata или даже Sockets. На данный момент я не пишу асинхронное решение, так как это потребует, чтобы ваша программа имела бесконечный цикл (while (true)), и я не слишком уверен, если у вас уже есть основной цикл на этом этапе.

+0

Также не забудьте закрыть FileOutput, возвращенный File.write(). –