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

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

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

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

Hikvision HCNetSDK Ошибка 9: NET_DVR_NETWORK_RECV_ERROR — ошибка приема

Обновлено: 24.08.2026 · Официальная документация ↗
  • Функции получения данных возвращают FALSE с кодом ошибки 9.
  • Поток видеоданных прерывается через несколько секунд после успешного старта.
  • SDK регистрирует неожиданное закрытие удаленного сокета со стороны видеорегистратора/камеры.

1. Проверка логов устройства на предмет внезапной перезагрузки

Ошибка 9 чаще всего возникает, когда удаленное устройство аварийно перезагружается прямо во время обработки клиентского запроса (Watchdog Reboot / Kernel Panic). Проверьте системный журнал камеры:

curl -k -v --digest -u admin:Hikvision123+ "http://192.168.1.64/ISAPI/System/deviceInfo"

Обратите внимание на поле <deviceUpTime>.

2. Захват дампа сетевого трафика (Wireshark / tcpdump)

Снимите дамп для выявления стороны, инициирующей разрыв (FIN/RST):

tcpdump -nn -i any host 192.168.1.64 and port 8000 -w hik_recv_err.pcap

3. Проверка стабильности питания по PoE

При включении ИК-подсветки или старте моторов PTZ энергопотребление камеры резко возрастает. Если бюджет PoE-коммутатора исчерпан, камера кратковременно перезагружается, вызывая ошибку 9 у всех подключенных SDK клиентов.

4. Обработка ошибки в Exception Callback

void CALLBACK g_ExceptionCallBack(DWORD dwType, LONG lUserID, LONG lHandle, void *pUser) {
    if (dwType == EXCEPTION_RECV_ERROR || dwType == EXCEPTION_SOCKETERROR) {
        printf("Network Receive Error detected on UserID: %ld, Handle: %ld\n", lUserID, lHandle);
        // Логика безопасного перезапуска клиентской сессии
    }
}
// Регистрация в процессе запуска:
NET_DVR_SetExceptionCallBack_V30(0, NULL, g_ExceptionCallBack, NULL);
💡 Практика специалистов: Если ошибка 9 воспроизводится строго на многопроцессорных серверах под высокой нагрузкой, убедитесь, что сетевые прерывания (NIC RSS / IRQ Affinity) равномерно распределены по ядрам CPU, иначе сетевой стек Linux/Windows сбрасывает пакеты в кольцевом буфере RX.

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

В чем отличие ошибки 9 (RECV_ERROR) от ошибки 10 (RECV_TIMEOUT)?

Ошибка 9 возникает при физическом или логическом разрыве сокета (соединение сброшено RST флагом или закрыто удаленным хостом). Ошибка 10 означает, что сокет активен, но за отведенное время ожидаемые данные не поступили.

Может ли ошибка 9 быть вызвана антивирусным экраном на сервере?

Да, если антивирус инспектирует поток и обнаруживает сигнатуру, похожую на эксплойт, он принудительно разрывает сокет со стороны хоста.

Что делать, если ошибка 9 возникает только при экспорте архива за определенную дату?

Это указывает на наличие сбойных секторов (Bad Blocks) на жестком диске NVR. При попытке чтения поврежденного сектора медиадемон регистратора падает в segmentation fault.

Как изолировать сбой питания PoE от сетевой проблемы?

Подключите камеру через локальный блок питания 12V DC вместо PoE и повторите длительный тест непрерывного чтения потока.

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