Patrząc na asynchroniczną rozdzielczość adresu w winsock wydaje się, że jedynymi dwiema opcjami są: blokowanie gethostbyname
w osobnym wątku lub użycie WSAAsyncGetHostByName
. Ta ostatnia została zaprojektowana z jakiegoś powodu do pracy z wiadomościami w oknie, zamiast nakładających się operacji i portów/procedur ukończenia.Asynchroniczna rozdzielczość adresu w winsock?
Czy istnieje jakaś wersja gethostbyname
, która działa asynchronicznie z nakładającymi się operacjami w podobny sposób do reszty interfejsu API systemu winsock?
"Jakiś powód" to został zaprojektowany w ten sposób, że Winsock został stworzony w świecie Win16, gdzie nie było wątków ani programów w trybie konsolowym (były programy DOS, ale nie miały one dostępu do Winsock, z wyjątkiem oszustwa.) Wszystkie programy Windows miały GUI lub przynajmniej pętla komunikatów, dzięki której system operacyjny poinformował program o tym, co się wydarzyło. Powiadomienie o zakończeniu wyszukiwania nazw t ten mechanizm ma sens w tym świecie. –