отправка файла с помощью C++

Я хочу отправить файл на C++ по сети (для программы чата), что мне делать?


person JGC    schedule 19.01.2010    source источник
comment
см. stackoverflow.com/questions/2014033/   -  person Idan K    schedule 19.01.2010


Ответы (5)


Взгляните на http://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio/examples.html . Пример Iostreams должен дать вам первый хороший шаг. Asio — портативная сетевая библиотека проекта boost. Boost доступен для большинства платформ, доступных сегодня.

Вы можете передавать файл и передавать его в поток TCP.

person Damg    schedule 19.01.2010

Используйте библиотеку FTP с открытым исходным кодом для более надежного приложения. поток для библиотеки с открытым исходным кодом на основе C++.

person Satbir    schedule 19.01.2010
comment
Я не мог не согласиться больше. FTP имеет множество присущих ему проблем (особенно в наше время, когда на пути все NAT), и его, безусловно, следует избегать для новых приложений. - person avakar; 19.01.2010

Это довольно легко. Настройте сокет TCP/IP, а затем разбейте файл на пакеты и отправьте их друг другу. TCP надежен, поэтому все пакеты будут поступать в правильном порядке, и он будет обрабатывать повторную передачу и т. д.

Однако, если вам необходимо использовать ненадежный транспорт (например, UDP), посмотрите stop и подождите (самый простой способ), go-back-n или выборочный повтор (что несколько сложнее, но намного эффективнее).

person Goz    schedule 19.01.2010

Вы можете установить прямое соединение между ними и отправить содержимое файла. Для этого одна сторона будет клиентом, а другая отправителем.

Вы можете увидеть простую реализацию здесь.

person Amirshk    schedule 19.01.2010

Вы будете делать то, что называется программированием сокетов. Пожалуйста, обратитесь к Руководству Beej по работе в сети для получения подробной информации и решения вашей проблемы.

person Community    schedule 19.01.2010