Re: Как прикрутить timeout к dns запросу
От: Maniacal Россия  
Дата: 18.02.19 13:07
Оценка:
Здравствуйте, DrunkPilot, Вы писали

DP>Казалось бы все просто . Есть список хостов . Есть api GetAddrInfoEx , где присутствует аргумент timeout .

DP>Однако
DP>

DP>An optional parameter indicating the time, in milliseconds, to wait for a response from the namespace provider before aborting the call.

DP>This parameter is only supported when the UNICODE or _UNICODE macro has been defined in the sources before calling the GetAddrInfoEx function. Otherwise, this parameter is currently reserved and must be set to NULL since a timeout option is not supported.

DP>Вопрос как правильно в винде сделать timeout ns запроса . Велосипедить свой gethostbyname через сокеты ?

Использовать UNICODE? Другое решение сделать вызов асинхронным и прерывать по таймауту, правда параметр lpOverlapped тоже

This parameter is only supported when the UNICODE or _UNICODE macro has been defined in the sources before calling the GetAddrInfoEx function.


Можно в отдельном потоке, в лямбда-функцции, как пример, делать запрос, ждать, если время истекло, просто забивать на поток. Таймаут всё равно через какое-то время случится и поток завершится. А если через WinAPI поток запускать, так там и TerminateThread вполне себе есть.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.