Мое приложение постоянно отправляет пакеты UDP на разные хосты. Когда хост жив, пакет UDP достигает узла, а функция sendto
возвращает количество отправленных ему байтов. Но когда хост получает (отсоединение кабеля или сброс), функция sendto
не отправляет пакет UDP, а возвращает количество байтов в буфере. Вместо отправки пакетов UDP пакеты ARP отправляются для поиска узла. Почему функция sendto
не возвращает SOCKET_ERROR? WSAGetLastError
функция возврат 0 тоже. Как я могу заметить ошибку при отправке пакетов UDP на недоступный хост?UDP sendto никогда не сработает
P.S. моя ОС - Winodws 7 x64, а мое приложение является родным C++ и 64-разрядным.
Каковы случаи отказа, которые вы пробовали? просто отсоедините кабель? – lsbbo
К моменту обнаружения ошибки, слишком поздно возвращать что-либо. –