Отправка файла по C++

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

5 ответов

Решение

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

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

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

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

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

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

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

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

Другие вопросы по тегам