Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

NET_LOGIN_ERROR_MAX_CONNECT (34) IP-Телефония и СКУД

Dahua NetSDK Ошибка 34: NET_LOGIN_ERROR_MAX_CONNECT — лимит подключений

Обновлено: 24.08.2026 · Официальная документация ↗
  • Метод CLIENT_Login завершается аварийно с кодом возврата 34.
  • Камера перестает принимать новые соединения от VMS, мобильных приложений DMSS и SmartPSS.
  • При проверке активных сокетов на сервере интеграции выявляется огромное количество зависших TCP-дескрипторов в состоянии ESTABLISHED или CLOSE_WAIT.
  • Новые потоки воспроизведения Realplay не могут быть инициализированы.

1. Аудит открытых сокетов и сессий со стороны клиента

Убедитесь, что приложение корректно закрывает дескрипторы и не создает логин на каждый запрос метаданных:

// Корректный паттерн освобождения ресурсов Dahua SDK
if (lLoginHandle != 0) {
    CLIENT_Logout(lLoginHandle);
    lLoginHandle = 0;
}
// При завершении работы приложения
CLIENT_Cleanup();

2. Анализ TCP сессий на стороне сервера приложений

ss -tanp | grep 37777 | awk '{print $1, $4, $5}' | sort | uniq -c
# Поиск дескрипторов, удерживаемых процессом
lsof -p <PID_ПРОЦЕССА_ИНТЕГРАЦИИ> | grep 37777 | wc -l

3. Проверка и завершение активных сессий на устройстве через HTTP API

Выполните запрос активных пользователей к регистратору/камере:

curl -k --digest -u admin:Password123! "http://192.168.1.108/cgi-bin/userManager.cgi?action=getActiveUserInfo"

4. Внедрение пула соединений (Connection Pooling)

Запрещено вызывать CLIENT_Login перед каждой атомарной операцией (PTZ, чтение архива, получение конфига). Реализуйте Singleton или пул авторизованных сессий (Handle Pool), поддерживающий Keep-Alive через callback CLIENT_SetAutoReconnect.

💡 Практика специалистов: Распространенная архитектурная ошибка — создание отдельного LoginHandle на каждый RTSP/Realplay поток. Для получения видеопотоков по всем каналам NVR достаточно одного валидного LoginHandle и множественных вызовов CLIENT_RealPlayEx.

Частые вопросы (FAQ)

Каков аппаратный лимит подключений к IP-камерам Dahua?

Большинство IP-камер начального и среднего уровня поддерживают до 10-20 одновременных TCP/SDK соединений и не более 2-4 основных видеопотоков (Main Stream). Регистраторы NVR поддерживают до 64-128 клиентских подключений в зависимости от серии.

Почему соединение зависает на камере при аварийном падении интеграционного сервиса?

Если процесс интеграции завершается аварийно (SIGKILL или crash), TCP Keep-Alive со стороны камеры может удерживать сокет активным до 2 часов. Используйте CLIENT_SetSubconnCallBack и heartbeat пинги для своевременного обнаружения обрывов.

Помогает ли перезагрузка устройства при ошибке 34?

Перезагрузка временно очищает таблицу дескрипторов камеры, однако без устранения утечки handle (CLIENT_Logout) в коде ошибка вернется через короткий промежуток времени.

Как автоматически переподключаться без повторного логина?

Используйте интерфейс CLIENT_Init(DisConnectFunc, 0) и функцию CLIENT_SetAutoReconnect(HaveReConnectFunc, 0). SDK самостоятельно восстановит авторизованную сессию при сетевом сбое.

Полезные материалы
Рекомендуем