2010-01-19 2 views
0

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

+1

см. Http://stackoverflow.com/questions/2014033/send-file-in-socket-programing-in-linux-with-c-c –

ответ

4

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

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

0

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

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

0

Вы будете делать что-то, называемое программированием сокетов. Пожалуйста, обратитесь к Beej's Guide to Networking за всеми подробностями и решением вашей проблемы.

1

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

+0

Я не мог больше не согласиться. У FTP есть много неотъемлемых проблем (особенно в настоящее время со всеми NAT на пути) и, безусловно, следует избегать для новых приложений. – avakar

+0

спасибо за обновление меня. – Satbir

1

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

Если вам нужно использовать ненадежный транспорт (например, UDP), посмотрите на stop and wait (Самый простой) go-back-n или selective repeat (которые являются несколько более сложными, но более эффективными).

Смежные вопросы