Dahua NetSDK Ошибка 32: NET_LOGIN_ERROR_BUSY — Ресурсы устройства исчерпаны
Отказ в обслуживании при попытке нового подключения к регистратору или камере:
- Функция логина завершается с ошибкой
32(NET_LOGIN_ERROR_BUSY). - В
stOut.nErrorвозвращается код7(Device resources are busy / Max clients reached). - Регистратор перестает принимать новые клиентские подключения от SmartPSS, DSS или NetSDK.
- Падение производительности и пропуск тревожных событий.
Код NET_LOGIN_ERROR_BUSY (32) означает, что устройство исчерпало максимальный лимит параллельных сетевых сессий (Concurrent Client Limit), лимит полосы пропускания исходящего потока или пул системной памяти (RAM Exhaustion).
1. Анализ лимитов оборудования Dahua
Каждая линейка имеет жесткие аппаратные ограничения на одновременные подключения:
- IP-камеры серии Consumer/Lite: до 5-10 одновременных сетевых пользователей.
- Регистраторы Lite NVR (серия 2xxx/4xxx): до 32 сетевых сессий или до 64-128 Мбит/с суммарного исходящего трафика.
- Enterprise NVR (серия 5xxx/6xxx): до 64-128 пользователей.
2. Поиск и закрытие потерянных (Leak) сессий
Если приложение открывает коннекты и не вызывает CLIENT_Logout, таблица сокетов заполняется «мертвыми» дескрипторами:
// Аудит и принудительное освобождение неиспользуемых хэндлов в приложении
void CleanupStaleSessions(std::vector& sessionList) {
for (LLONG& hLogin : sessionList) {
if (hLogin != 0) {
CLIENT_Logout(hLogin);
hLogin = 0;
}
}
sessionList.clear();
} 3. Оптимизация сетевой архитектуры (Медиасервер / RTSP Рестриминг)
Если видео с одной камеры требуется отображать на 50 рабочих местах операторов, ни в коем случае не подключайте всех клиентов напрямую к камере. Настройте медиасервер-ретранслятор (например, MediaMTX, Flussonic, DSS Pro), который заберет один поток с камеры и раздаст его клиентам по WebRTC/RTSP.
Частые вопросы (FAQ)
Почему при ошибке 32 локальный монитор, подключенный к HDMI регистратора, продолжает работать?
Локальный интерфейс GUI работает напрямую через чип аппаратного декодера и не зависит от сетевого демона dhnetsvr и лимитов TCP сокетов.
Сбрасываются ли зависшие сессии при перезагрузке NVR?
Да, перезагрузка полностью очищает таблицу активных подключений в оперативной памяти устройства.
Влияет ли передача мобильных PUSH-уведомлений на лимит сессий?
Да, каждая активная сессия Cloud P2P/DMSS резервирует внутренний слот сетевого контекста.
Как программно узнать количество свободных слотов подключения?
Вызовите CLIENT_QueryDevState с типом структуры DH_DEVSTATE_RESOURCE для получения текущей загрузки CPU, памяти и сетевых каналов.