Networking with C++ [closed]

Я создал (бесплатное) приложение, которое позволяет быстро создавать темы VS, позволяя выбирать много цветов и, например, рандомизировать определенный канал. Вы можете создать темную тему за пару кликов мышью. Почтовый индекс также включает 3 темы. Я просто поместил его сейчас в http://www.filedude.com/download/7g4YH3FRpQb0c76202d2 .

27
задан ROMANIA_engineer 12 December 2017 в 22:24
поделиться

3 ответа

Учитывая вашу новизну в C ++, я бы не рекомендовал создавать непосредственно на API сокетов, если вы не можете найти подходящую библиотеку для использования. Boost.Asio даст вам огромное преимущество и познакомит вас с абстракциями более высокого уровня, используемыми в сетевом программировании.

Когда вы начинаете создавать систему, основанную на сокетах, легко получить что-то, что «работает», а затем потратить недели на отладку угловых случаев, которые происходят только в реальных условиях времени и нагрузки. Правильное использование boost::asio вряд ли является легкой прогулкой, даже если оно ограждает разработчиков от сложностей необработанной обработки сокетов.

Если цель состоит в том, чтобы научиться правильно использовать необработанные сокеты (или какой-либо другой транспортный механизм, такой как RPC), то во что бы то ни стало, используйте свои собственные образцы и документы онлайн, чтобы понять отдельные API BSD или Winsock - если цель состоит в том, чтобы как можно быстрее решить бизнес-задачу с помощью высококачественного кода как на стороне бизнеса, так и на стороне сетевой инфраструктуры, то используйте хорошую сетевую библиотеку. В этом случае ваш вопрос указывает на желание учиться, поэтому использование библиотеки может оказаться не лучшим способом для достижения поставленной цели.

27
ответ дан 28 November 2019 в 05:13
поделиться

Я уверен, что группа людей на С ++, которые презирают способ ведения дел на С, возненавидит меня за это, но классический подход заключается в использовании API сокетов Беркли (так называемых, потому что они имеют их происхождение в BSD). Если вы ориентируетесь на Windows, API-интерфейсы «в значительной степени совместимые с исходным кодом, вдохновленные Unix» называются Winsock . Я бы сказал, сделайте веб-поиск по обучающему сокету , и вы, вероятно, получите некоторую полезную информацию. С небольшой осторожностью и, может быть, #ifdef или двумя, не так сложно создать код, который работает на Linux, BSD, Mac (которые предоставляют сокеты BSD) и Windows (с Winsock), используя то, что является общим для этих двух интерфейсов.

Для более склонных к C ++, менее склонных к C-стилям людей или тех, кто не любит программировать с помощью API-интерфейсов ОС, я уверен, что есть библиотеки C ++, которые предоставляют обертки и абстракции для тех же самых понятий. Поскольку Boost кажется довольно популярным, я бы сказал , посмотрите, что у них есть .

6
ответ дан 28 November 2019 в 05:13
поделиться

C ++ - это объектно-ориентированный язык, открытый для того, чтобы вы могли позаимствовать его из других языков, особенно C. Но вот несколько книг, которые могут вам помочь. http://wjyl.nuaa.edu.cn/kfyy/article/C++%20Network%20Programming%20Volume%201.pdf и, возможно, http://www.cs.wustl.edu/ ~ schmidt / PDF / ACE-tutorial.pdf среди многих. там и другие.

1
ответ дан 28 November 2019 в 05:13
поделиться
Другие вопросы по тегам:

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