阻止主機分辨率有getaddrinfo()
,但是有沒有阻止方法?在WINAPI中是否有一種用於主機解析的非阻塞方法?
7
A
回答
2
我不認爲有這樣的事情,但你總是可以把它包裝在一個線程中,並使用信號量來表示完成。
3
Linux有getaddrinfo_a()
。請參閱StackOverflow標記getaddrinfo-a,例如this question "How to use getaddrinfo_a to do async resolve with glibc"。但我想這不適用於Windows。
針對異步DNS請求有一個跨平臺庫c-ares,它表示它在Windows上運行。 (我自己沒有嘗試過。)
0
從Windows Vista和Windows Server 2008中,您可以使用GetAddrInfoEx和OVERLAPPED結構。
一旦hEvent
事件設置在OVERLAPPED
結構中使用GetAddrInfoExOverlappedResult。
2
從上GetAddrInfoEx重疊參數說
的MSDN頁「在Windows 7和Windows Server 2008 R2或更早的版本,這個參數是當前保留,並自從異步操作不受支持必須設置爲NULL。」
這意味着您只能在Windows 8及更新版本中使用OVERLAPPED功能。除非史蒂夫可以證明它可以在老版本的Windows中運行...
相關問題
- 1. 非阻塞主機名解析?
- 2. Dialog.show()是一種非阻塞方法嗎?
- 3. gae中的lease_tasks()是否阻塞了一個阻塞方法?
- 4. Java中的非阻塞CAS是否真的非阻塞?
- 5. 在Win32中,有沒有一種方法可以測試套接字是否是非阻塞的?
- 6. 是否有非阻塞emgu ImageViewer調用?
- 7. 是否是Task.Delay非阻塞?
- 8. 同步方法執行時,非同步方法是否阻塞
- 9. 使用非阻塞的SocketChannel,是否阻塞了Socket?
- 10. 一種阻塞/解鎖的WinForms調用
- 11. 是renderer.render()阻塞還是非阻塞?
- 12. 我的(初學者)對阻塞和非阻塞io的理解是否正確?
- 13. 非阻塞方式
- 14. GKSession調用是否阻塞主線程?
- 15. Java中是否存在有界的非阻塞集合?
- 16. 我對節點中'非阻塞'的理解是否正確?
- 17. java.io.BufferedReader.readLine()是非阻塞
- 18. Gtk非阻塞呼叫解決方案?
- 19. 是否有一個用於node.js的阻塞redis庫?
- 20. 扭曲的非阻塞方法 - 如何?
- 21. 非阻塞方式的Kombu
- 22. mpi:阻塞與非阻塞
- 23. ServerSocket.accept()是一種阻塞方法 - 多個偵聽器加速?
- 24. 瞭解節點中的非阻塞IO
- 25. 是否有可能在linux終端中以非阻塞方式實現printf()
- 26. ESI是否阻塞或不阻塞?
- 27. 下面的node.js代碼是阻塞的還是非阻塞的?
- 28. 如何編寫非阻塞javascript方法?
- 29. Node.js.與非阻塞方法相混淆
- 30. Java中的非阻塞(異步)DNS解析