Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
memcpy(&vTemp[0], &m_vSendBuffer[err], m_vSendBuffer.size()-err);while (it != m_mapClients.end()) //Перечисляем всех клиентов
{
if (!it->second->Continue()) //Делаем что-нибудь с клиентом
m_mapClients.erase(it++); //Если клиент вернул false, то удаляем клиента
else
it++;
}
it = m_mapClients.erase(it);
С другой — мне не нравится когда старожилы хабра уводят в минуса людей с желанием писать программы и статьи. Пусть даже уровень этих статей далеко не дотягивает до уровня желаемого.
Впрочем это удел очень хороших специалистов.
#pragma onceusing namespace std;Чтобы скомпилировать в Linux надо скопировать в одну директорию файлы: serv.cpp, server.h, ca-cert.pem и в командной строке набрать: «g++ -std=c++0x -L/usr/lib -lssl -lcrypto serv.cpp»Запомните: если хотите избавиться от дурацких ошибок ещё на этапе компиляции, всегда компилируйте код с параметром
-Wall, а ещё лучше с -Wextra иногда прогонять. В MSVS после создания проекта нужно привыкнуть сразу же устанавливать ворнинги с дефолтного /W3 на /W4. Сразу же выбросятся примитивнейшие ошибки сравнения signed и unsigned, которые у вас на 284-й и 335-й строках.sa_serv.sin_addr.s_addr = INADDR_ANY;И можно узнать, что адрес в эту структуру передаётся так же как и порт — в сетевом порядке байт. Вам просто тут повезло с константой INADDR_ANY равной нулю. Ну ладно, спихнём на невнимательность.
А писать код в хидерах это жесть
Кроссплатформенный https сервер с неблокирующими сокетами. Часть 2