2013-09-11 3 views
0

Я начинаю с сокетами в C++, но видел 4 различных библиотек (или включает), что позволяет использовать сокеты, как winsock.hsys/sockets.h, sfml и boost. Мой вопрос в том, что такое библиотека/include, которую я должен использовать?Начиная с сокетами в C++

+0

Программисты имеют раздражающую ловкость придумывания дополнительных ответов на одни и те же вопросы. Я запускаю веб-приложение, которое одновременно развертывает несколько серверов apache, tomcat и причал на трех разных типах виртуальных машин. Я хотел бы найти хороший учебник, а затем просто следить за тем, что они делают. –

ответ

2

Это довольно весело, но нет единой широко распространенной библиотеки сокетов для C++.

  • Это не является частью стандартной библиотеки
  • подталкивания ASIO жертвы простота для высокой производительности
  • SFML гнездо выглядит довольно хорошо, но он по-прежнему включает в себя кучу других заголовков
  • для Windows и POSIX сокеты ОС имеют раздражающий небольшие отличия

Некоторые опытные сетевые программисты должны написать хороший класс с одним заголовком со всеми необходимыми условными флагами компиляции для работы с несколькими ОС s.

+0

Это, конечно, не только один заголовок, но я хотел бы смиренно предложить свой собственный [liblacewing] (http://lacewing-project.org) в качестве альтернативы для преодоления разрыва Windows/Berkeley. –

+3

Обязательно http://xkcd.com/927/ –

+0

Это хорошо, спасибо за эту информацию. – RebeloX

0

Если вы используете UNIX-подобную операционную систему, используйте sys/socket.h. Это часть open standard. Для Windows вам нужно использовать библиотеку Winsock, поэтому вам нужно будет включить winsock2.h (здесь the docs on how to use that library).

+0

Я забыл упомянуть, что те включают файлы только для сокетов Berkley, а не Boost. – austin

+0

Большое спасибо, про sfml и boost - это сторонняя библиотека? – RebeloX

+0

Примечание. Сокеты Unix и Winsock могут быть совместимы с исходным кодом с не слишком большой работой (несколько «# ifdef»), если вам не нужна обработка высокопроизводительных событий. –

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