@Odyssey1

C++ сеть. Как работать с сетью в C++?

Доброй ночи! Я новичок в C++, поэтому активно его изучаю, но в книгах нет ни слова про сеть. Знаю что есть библиотеки ACE, POCO, BOOST(гуглил), но ничего про них не знаю больше.
Кто нибудь сможет кратко рассказать о всех способах работы с сетью в C++(или хотя бы о самых популярных)? И, если это возможно, методы без использования сторонних библиотек(только стандартных). Интересует и HTTP и Клиент-Сервер. А если есть ещё и книги по этой теме то вообще идеально будет.
  • Вопрос задан
  • 24779 просмотров
Решения вопроса 1
Olej
@Olej
инженер, программист, преподаватель
Для работы с сетью (на сегодня сетью называют уже практически только TCP/IP) используется такая совершенно абстракция как сокеты (в программном коде).
Можете немного глянуть здесь: Сетевое программирование в Linux.

А что касается HTTP ... то это совсем другая песня - это вам нужно, прежде, разбираться с уровнями сетевой модели, сетевого стека. HTTP - это протокол прикладного уровня. В C++ ничего уже специально и не надо для протокола прикладного уровня, к сетевому программированию это уже и не имеет прямого отношения.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@vilgeforce
Раздолбай и программист
bsd socket, curl, WinInet.
Ответ написан
Комментировать
romy4
@romy4
Exception handler
та ладно?! не гуглится "с++ работа с сетью"?
Ответ написан
Nipheris
@Nipheris Куратор тега C++
Знаю что есть библиотеки ACE, POCO, BOOST(гуглил), но ничего про них не знаю больше.

ну так узнайте! Узнайте про Boost::Asio, узнайте про cpp-netlib, построенную поверх него (как раз будет вам HTTP клиент и сервер)
Ответ написан
Комментировать
@1q2w1q2w
sudo make install
  1. *WinInet
  2. •WinHttp
  3. •Casablanca
  4. •Qt
  5. •POCO
  6. •wxWidgets
  7. •Boost.Asio
  8. •libcurl
  9. •neon
  10. •.NET (С++/CLI)
  11. •IXMLHTTPRequest
  12. •HappyHttp
  13. •cpp-netlib


Чтобы далеко не ходить: Статья на хабре
Наиболее часто используются, насколько я знаю Boost и Qt. POCO и libcurl позволяют сделать проще реализацию, но не такие гибкие..
А если без библиотек - тогда чисто через сокеты (если не ошибаюсь, библиотеки просто упрощают работу с ними, по крайней мере Boost).
От себя рекомендую Qt ... но только если вам нужен GUI и что то кроме сетевых классов (тяжелый он, но красивый))
А к стандарту ближе всего Boost (из него даже некоторые части были включены в стандарт), так что выбирайте)
Кстати, к вопросу о выборе, для интереса пробил количество вакансия по boost и qt: 77/72 в Москве, так что почти паритет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы