Кросс-платформенный Сетевой API [закрывается]

5
задан genpfault 26 October 2017 в 18:14
поделиться

8 ответов

Для этого есть несколько вариантов, некоторые из которых проще в использовании, чем другие:

  • APR (Apache Portable Runtime) - Очень популярны. Довольно проста в использовании. Включает в себя множество дополнительных функций, удобных для сетевого программирования (потоки, мьютексы и т.д.)

  • ACE - Популярна среди встроенного пространства. Лично мне он показался довольно сложным API, и не очень простым в использовании.

  • Boost - Если у вас приличный уровень сложности с C++ (шаблоны, метапрограммирование и т.д.), то библиотеки Boost, как правило, очень хороши. Я не уверен, насколько популярны асинхронные сетевые библиотеки Boost в реальном мире.

  • QT - популярен как инструментарий пользовательского интерфейса, но имеет отличный набор потоков, управления событиями, сетевых библиотек. IMO, это, безусловно, самый простой в использовании.

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

Мои личные предпочтения: APR.

7
ответ дан 18 December 2019 в 14:45
поделиться

Вы можете использовать ACE или Boost.Asio :

О ACE:

Повышенная переносимость - Компоненты ACE позволяют легко писать параллельные сетевые приложения на одной платформе ОС и быстро переносить их на многие другие платформы ОС. Более того, поскольку ACE - это бесплатное программное обеспечение с открытым исходным кодом, вам никогда не придется беспокоиться о привязке к конкретной платформе операционной системы или конфигурации компилятора.

О boost:

Boost.Asio - это кроссплатформенная библиотека C ++ для сетевого программирования и программирования ввода-вывода низкого уровня, которая предоставляет разработчикам согласованную асинхронную модель с использованием современного подхода C ++.

2
ответ дан 18 December 2019 в 14:45
поделиться

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

Если вам нужны функции безопасности, такие как SSL / TLS (которые, я думаю, вам не нужны для простой игры), существуют библиотеки с открытым исходным кодом, такие как OpenSSL, GNU TLS, Mozilla NSS.

1
ответ дан 18 December 2019 в 14:45
поделиться

SDL Net - это очень простой уровень абстракции поверх сокетов, который очень прост в использовании. См. http://www.libsdl.org/projects/SDL_net .

0
ответ дан 18 December 2019 в 14:45
поделиться

большинство API сокетов Berkeley работает везде.

2
ответ дан 18 December 2019 в 14:45
поделиться

NRL имеет действительно отличную библиотеку сетевых методов, которая поддерживает большое количество платформ. Они также имеют отличную поддержку со стороны реальных разработчиков в своих списках рассылки.

Protolib

1
ответ дан 18 December 2019 в 14:45
поделиться

У меня такое чувство, что Apache Portable Runtime может помочь с тем, что вы ищете. Apache HTTPD использовал эту библиотеку внутри для абстрагирования своего кода, зависящего от платформы, чтобы код сервера фокусировался на логике и вызывал методы в APR, а они транслировались в базовые функции операционной системы.

Конечно, в нем может быть больше инструментов, чем вам строго нужно ...

0
ответ дан 18 December 2019 в 14:45
поделиться

Synapse - хорошая мультиплатформенная сетевая библиотека. Открытый исходный код и очень прост в использовании.

http://www.ararat.cz/synapse/doku.php/download

0
ответ дан 18 December 2019 в 14:45
поделиться
Другие вопросы по тегам:

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