【发布时间】:2010-12-16 02:52:11
【问题描述】:
查看winsock 中的异步地址解析,似乎只有两个选项是在单独的线程上使用阻塞gethostbyname,或者使用WSAAsyncGetHostByName。后者出于某种原因被设计用于处理窗口消息,而不是重叠的操作和完成端口/例程。
是否有任何版本的 gethostbyname 可以以类似于其余 winsock API 的方式与重叠操作异步工作?
【问题讨论】:
-
这样设计的“某些原因”是 Winsock 是在 Win16 世界中创建的,没有线程或控制台模式程序。 (有 DOS 程序,但它们无法访问 Winsock,除非通过诡计。)所有 Windows 程序都有一个 GUI,或者至少是一个消息循环,操作系统通过它告诉程序已经发生的事情。在那个世界中,通过这种机制通知完成的名称查找是有意义的。
标签: asynchronous winsock gethostbyname