Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Asynchronous address resolution in winsock?

Looking into asynchronous address resolution in winsock it seems that the only two options are either to use the blocking gethostbyname on a seperate thread, or use WSAAsyncGetHostByName. The latter is designed for some reason to work with window messages, instead of overlapped operations and completion ports/routines.

Is there any version of gethostbyname that works asynchronously with overlapped operations in a similiar manner to the rest of the winsock API?

like image 693
sold Avatar asked Nov 12 '09 23:11

sold


2 Answers

Unfortunately there isn't at present, although GetAddrInfoEx() has placeholders for all the right things for async operation via all of the 'usual' routes (including IOCP) so I expect there will be eventually... Unfortunately, at this time, the docs say that all of these must be set to NULL and are marked as 'reserved'. :(

I'm just about to write one (have been for a while)... It's unfortunate that WSAAsyncGetHostByName doesn't even allow concurrent name resolution, so it's pretty useless as a base for what I want; but, then again, since it doesn't handle IPv6 that also makes it pretty useless to me. I expect I'll start from scratch; possibly using something like this (beerware) as a base.

like image 161
Len Holgate Avatar answered Nov 01 '22 12:11

Len Holgate


Sorry, there is no overlapped version of gethostbyname().

like image 40
Remy Lebeau Avatar answered Nov 01 '22 14:11

Remy Lebeau