views:

148

answers:

2

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?

+1  A: 

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

Remy Lebeau - TeamB
A: 

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.

Len Holgate
Beware, the second library you link to is GPL'd.
Warren Young
Good spot Warren. I hadn't got as far as following it up yet. I only did the googling last night.
Len Holgate