在 winsock 中查看异步地址解析,似乎只有两个选项是gethostbyname
在单独的线程上使用阻塞,或者使用WSAAsyncGetHostByName
. 后者出于某种原因被设计用于处理窗口消息,而不是重叠的操作和完成端口/例程。
是否有任何版本gethostbyname
以与 winsock API 的其余部分类似的方式与重叠操作异步工作?
在 winsock 中查看异步地址解析,似乎只有两个选项是gethostbyname
在单独的线程上使用阻塞,或者使用WSAAsyncGetHostByName
. 后者出于某种原因被设计用于处理窗口消息,而不是重叠的操作和完成端口/例程。
是否有任何版本gethostbyname
以与 winsock API 的其余部分类似的方式与重叠操作异步工作?
不幸的是,目前还没有,尽管GetAddrInfoEx()通过所有“常规”路由(包括 IOCP)为异步操作提供了所有正确的占位符,所以我希望最终会有......不幸的是,此时,文档说所有这些都必须设置为 NULL 并标记为“保留”。:(
我正要写一个(已经有一段时间了)......不幸的是,WSAAsyncGetHostByName
它甚至不允许并发名称解析,所以它作为我想要的基础毫无用处;但是,话又说回来,因为它不处理 IPv6,这也使它对我来说毫无用处。我希望我会从头开始;可能使用这样的东西(啤酒器)作为基础。
抱歉,gethostbyname() 没有重叠版本。