Я создал (бесплатное) приложение, которое позволяет быстро создавать темы VS, позволяя выбирать много цветов и, например, рандомизировать определенный канал. Вы можете создать темную тему за пару кликов мышью. Почтовый индекс также включает 3 темы. Я просто поместил его сейчас в http://www.filedude.com/download/7g4YH3FRpQb0c76202d2 .
Учитывая вашу новизну в C ++, я бы не рекомендовал создавать непосредственно на API сокетов, если вы не можете найти подходящую библиотеку для использования. Boost.Asio даст вам огромное преимущество и познакомит вас с абстракциями более высокого уровня, используемыми в сетевом программировании.
Когда вы начинаете создавать систему, основанную на сокетах, легко получить что-то, что «работает», а затем потратить недели на отладку угловых случаев, которые происходят только в реальных условиях времени и нагрузки. Правильное использование boost::asio
вряд ли является легкой прогулкой, даже если оно ограждает разработчиков от сложностей необработанной обработки сокетов.
Если цель состоит в том, чтобы научиться правильно использовать необработанные сокеты (или какой-либо другой транспортный механизм, такой как RPC), то во что бы то ни стало, используйте свои собственные образцы и документы онлайн, чтобы понять отдельные API BSD или Winsock - если цель состоит в том, чтобы как можно быстрее решить бизнес-задачу с помощью высококачественного кода как на стороне бизнеса, так и на стороне сетевой инфраструктуры, то используйте хорошую сетевую библиотеку. В этом случае ваш вопрос указывает на желание учиться, поэтому использование библиотеки может оказаться не лучшим способом для достижения поставленной цели.
Я уверен, что группа людей на С ++, которые презирают способ ведения дел на С, возненавидит меня за это, но классический подход заключается в использовании API сокетов Беркли (так называемых, потому что они имеют их происхождение в BSD). Если вы ориентируетесь на Windows, API-интерфейсы «в значительной степени совместимые с исходным кодом, вдохновленные Unix» называются Winsock . Я бы сказал, сделайте веб-поиск по обучающему сокету , и вы, вероятно, получите некоторую полезную информацию. С небольшой осторожностью и, может быть, #ifdef
или двумя, не так сложно создать код, который работает на Linux, BSD, Mac (которые предоставляют сокеты BSD) и Windows (с Winsock), используя то, что является общим для этих двух интерфейсов.
Для более склонных к C ++, менее склонных к C-стилям людей или тех, кто не любит программировать с помощью API-интерфейсов ОС, я уверен, что есть библиотеки C ++, которые предоставляют обертки и абстракции для тех же самых понятий. Поскольку Boost кажется довольно популярным, я бы сказал , посмотрите, что у них есть .
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 среди многих. там и другие.