Здравствуйте, dogonthesun, Вы писали:
D>HANDLE – не счетчик.
Ну как же не счетчик?
HANDLE возвращаемый WSAAsyncGetHostByName() представляет собой числовой идентификатор.
При каждом успешном вызове идентификатор на 1 больше предыдущего.
Я вызываю WSAAsyncGetHostByName() в одной функции, после ее завершения WindowProc обрабатывает все ее успешные вызовы,
передавая в качестве параметров те же самые идентификаторы (wParam == HANDLE).
При первом запуске все идентификаторы (HANDLE) абсолютно совпадают по номерам со списком компьютеров из NetServerEnum().
При повторном идентификаторы продолжают увеличиваться на 1.
Я нашел способ сброса только полным закрытием WINSOCK --> WSACleanup() и затем повторной инициализацией WSAStartup().
Но это совсем не разумный способ, я ищу способ сброса счетчика не закрывая WINSOCK.
Или же, подскажите как быстро опросить компьютер зная его имя в сети и получить IP адрес.
Мне главное избежать тормозов когда компьютер не в сети. gethostbyname() тормозит, getaddrinfo()/getnameinfo() тоже.
А WSAAsyncGetHostByName() не тормозит вообще, если комп не в сети просто возвращает ошибку #11001 моментально (несколько милисекунд).