Dahua NetSDK Ошибка 28: NET_LOGIN_ERROR_TIMEOUT — Таймаут авторизации
Сбои при установке первичного сетевого соединения:
- Функция
CLIENT_LoginWithHighLevelSecurityдлительно блокирует поток и возвращает ошибку28. - В структуре
stOut.nErrorфиксируется код3(Login timeout). - Периодические обрывы связи с удаленными филиалами или камерами, подключенными через 4G/LTE модемы.
Код NET_LOGIN_ERROR_TIMEOUT (28) возникает, когда клиент успешно отправил сетевой TCP-запрос на авторизацию, но устройство не прислало ответный пакет в течение установленного таймаута.
1. Увеличение времени ожидания соединения в SDK
По умолчанию таймаут может быть слишком мал для медленных или перегруженных каналов. Настройте параметры перед вызовом логина:
// Установка таймаута на попытку TCP-коннекта: 5000 мс (5 сек), 3 попытки
CLIENT_SetConnectTime(5000, 3);
// Установка таймаута на чтение/запись данных запроса: 10000 мс (10 сек)
CLIENT_SetSubConnectTime(10000);2. Проверка доступности порта 37777 (TCP handshake)
Убедитесь, что сервисный TCP-порт открыт и не фильтруется фаерволом:
# Linux/macOS
nc -zv -w5 192.168.1.108 37777
# Windows PowerShell
Test-NetConnection -ComputerName 192.168.1.108 -Port 377773. Проверка перегрузки CPU регистратора
Если к NVR подключено предельное количество клиентов или запущен экспорт тяжелого 4K-архива, процесс dhnetsvr может не успевать обрабатывать новые TCP-хэндшейки вовремя.
Частые вопросы (FAQ)
В чем разница между ошибкой NET_NETWORK_ERROR и кодом 28 (TIMEOUT)?
NETWORK_ERROR означает немедленный сброс (TCP RST) или отсутствие маршрута (ICMP unreachable), а код 28 означает, что сокет открыт, но устройство зависло и не отвечает на прикладном уровне.
Помогает ли смена транспортного протокола с TCP на SSL?
Если используется защищенный порт (обычно 37778), укажите EM_LOGIN_SPEC_CAP_SSL в структуре stIn.emSpecCap.
Почему веб-интерфейс камеры открывается, а логин по SDK падает по таймауту?
Веб-интерфейс обслуживается демоном nginx/lighttpd на порту 80, а SDK работает с внутренним сервисом на порту 37777. Сбой сервиса dhnetsvr вешает только SDK.
Как влияет MTU на появление таймаутов логина?
При авторизации HighLevelSecurity передаются крупные пакеты с сертификатами/ключами. Некорректный MTU на VPN-туннелях приводит к молчаливому дропу фрагментов.