如果我想进行DNS解析,我可以使用I / O完成端口吗? 我做了一个搜索,似乎我可以用两种方法做到这一点:
1)使用GetAddrInfoEx()
[?]
2)自己实施DNS解析(即一个小DNS客户端)
我希望第一个使用GetAddrInfoEx()
的更多信息可以在I / O完成端口中使用它,这意味着I / O完成端口线程接收完成的DNS查询的请求(OVERLAPPED)? MSDN页面[1]对此API的I / O完成端口没有任何说明,实际上,如果使用GetAddrInfoEx()
并不涉及使用任何HANDLE,它如何接收那些OVERLAPPED,与I / O完成端口关联?
第二种方法更简单,你有一个UDP(甚至是TCP)套接字你可以与I / O完成端口关联,你实现了一个用于DNS解析的小客户端,或者你可以使用像ldns这样的库[2]只解析DNS查询,而不是真正的I / O,这将由你的UDP套接字和你的I / O完成端口完成。 有人用过后一种方法吗?
[1] http://msdn.microsoft.com/en-us/library/windows/desktop/ms738518(v=vs.85).aspx