Что означает код errno 54 (ECONNRESET)?

 
Также может означать:
КонстантаТипОС
ERROR_NETWORK_BUSYОшибка WindowsWindows
EXFULLerrnoLinux
EBADRQCerrnoSolaris
DEVICE_REFERENCE_COUNT_NOT_ZEROКод BSODWindows
Предыдущий Следующий
EXFULL EBADRQC

ECONNRESET

Сброс прекратил состояние соединения

ECONNRESET означает, что соединение было сброшено, а не закрыто обычной последовательностью полузакрытия и FIN. В TCP обработка сброса удаляет состояние соединения, а ожидающие операции в очереди получают результат сброса; поэтому это существенно отличается от упорядоченного достижения конца потока.

Слова «другой стороной» в описании ошибки платформы не следует упрощать до утверждения «удалённое приложение намеренно закрыло соединение». Сброс может быть создан состоянием протокола, удалённым стеком, посредником или путём обработки ошибки. До определения виновной стороны приложению нужны данные о пакетах, конечных точках и времени.

Как отличить ошибку в журналах

  • Запишите, возникла ли ошибка при чтении, записи или ожидающем подключении: один и тот же сброс на каждом из этих этапов имеет разные последствия для приложения.
  • Сохраните четвёрку адресов и портов соединения, состояние протокола, байты, подтверждённые на прикладном уровне, и доступные журналы другой стороны или прокси за тот же интервал.
  • Не путайте чтение потока нулевой длины после FIN со сбросом. Корректное закрытие и сброс требуют разных решений о повторе и воспроизведении операции.

Вопрос безопасного восстановления

До повторного подключения установите, была ли подтверждена прикладная операция. Семантика сброса TCP не сообщает приложению, был ли запрос обработан до транспортного сбоя.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.