Доброго времени суток. Написал простенькую программу для подключения игроков к серверу. Задействовал на подключение асинхронную функцию AcceptEx(). Всё работает отлично и очень быстро. Первый пакет не принимаю. (0 ставлю в длину приёма пакета) Код (Text): lpCC->m_sListen = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_IP, NULL, 0, WSA_FLAG_OVERLAPPED); // ---- if ( lpCC->m_sListen == INVALID_SOCKET ) { g_Log.Add(TColor::Red, "[%s->%s] %s", "TIOCP", "PrepareAccept", "Error creating accept socket."); } // ---- //g_Log.Add(TColor::Red, "[%s->%s] lpCC->m_sListen: %d;", "TIOCP", "PrepareAccept", lpCC->m_sListen); // ---- // # First Associate then AcceptEx(); // ---- AssociateSocketWithCompletionPort(lpCC->m_sListen, m_hIOCP, dwListIndex); // ---- iRes = m_lpfnAcceptEx(m_sListen, lpCC->m_sListen, lpCC->m_pInBuf, 0, sizeof(sockaddr_in) + 16, sizeof(sockaddr_in) + 16, & dwBytes, (LPOVERLAPPED) & (lpCC->m_WSARecvOverlapped)); Но вот один человек начал ддосить мою программу. - Удивило то, что во время ддоса программа начинает загружать систему на 90%, после чего функция GetQueuedCompletionStatus() возвращает false, GetLastError() ошибку 1450; Поискав в интернете куча тем, но везде решение одно и тоже, увеличить значение переменной реестра IRPStackSize; - Но хотелось бы не делать временных решений.... # Добавлено: На одном из порталов интернета нашел следующее лечение. (Перейти) P.S. -> Хотелось бы понять принцип ддоса, то есть каким образом ддосят и постараться защититься от этого. # Добавлено: - На сколько я понял, это Syn flood, так как симптомы подходят полностью.