Отправка файла по 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 по работе с сетями для получения подробной информации и решения вашей проблемы.
Вы можете открыть прямое соединение между ними и отправить содержимое файла. Для этого одна сторона будет клиентом, а другая отправителем.
Вы можете увидеть простую реализацию здесь.