Dahua NetSDK Error 3: NET_NETWORK_ERROR — сбой передачи данных и сетевой тайм-аут
- Функции
CLIENT_LoginEx2,CLIENT_RealPlayзавершаются с кодом3(NET_NETWORK_ERROR). - Тайм-аут при попытке соединения с IP-камерой или регистратором по порту TCP 37777.
- Периодические дисконнекты и срабатывание коллбэка
CLIENT_SetAutoReconnect. - Потеря RTSP/DHIP видеопотока при высокой нагрузке на канал связи.
1. Тюнинг сетевых таймаутов в SDK
Увеличьте время ожидания подключения и повторных попыток перед выполнением логина:
// Установка тайм-аута подключения (в миллисекундах) и числа попыток
CLIENT_SetConnectTime(5000, 3); // 5 секунд, 3 попытки
// Установка тайм-аута сетевого обмена
NET_PARAM stNetParam = { sizeof(stNetParam) };
stNetParam.nConnectTime = 5000;
stNetParam.nGetConnInfoTime = 3000;
stNetParam.nSearchRecordTime = 10000;
CLIENT_SetNetworkParam(&stNetParam);2. Проверка доступности служебных портов Dahua
# Проверка доступности порта управления TCP 37777
nc -zvw3 192.168.1.108 37777
# Либо через telnet:
telnet 192.168.1.108 377773. Регистрация коллбэка восстановления связи
Реализуйте автоматическое восстановление сессии при обрывах:
void CALLBACK DisConnectFunc(LLONG lLoginID, char *pchDVRIP, LONG nDVRPort, LDWORD dwUser) {
printf("Device %s:%ld disconnected!\n", pchDVRIP, nDVRPort);
}
CLIENT_Init(DisConnectFunc, 0);
CLIENT_SetAutoReconnect(AutoReconnectFunc, 0); Частые вопросы (FAQ)
Какие сетевые порты использует Dahua NetSDK по умолчанию?
Основной порт управления и медиапотока TCP 37777 (DHIP), альтернативный веб-порт TCP 80/443 и RTSP порт TCP/UDP 554.
Почему в локальной сети возникает ошибка 3 при большом количестве камер?
Это связано с переполнением очереди TCP-сокетов или ограничением сетевого адаптера по числу одновременных полуоткрытых соединений (SYN backlog).
Что делать, если камеры подключены через нестабильный 4G-канал?
Переключите протокол передачи медиапотока на TCP (вместо UDP) и увеличьте nConnectTime до 10000 мс через CLIENT_SetNetworkParam.
Как проверить потери пакетов до IP-камеры?
Запустите ping с размером пакета близким к MTU: ping -s 1472 -c 100 192.168.1.108.