请告诉我将 WSAAsyncSelect() 函数移植到 GCC 的最轻松的方法...
最佳答案
虽然 select()
和 pselect()
可能适用于您的应用程序,但它们与 WSAAsyncSelect()
非常不同.这些函数使您可以在其他非阻塞套接字或套接字集合上进行受控阻塞。 poll()
也是如此。
另一方面,Winsock 的异步套接字永远不会阻塞。还有异步通知的大问题,您的代码无疑依赖于它。
我认为 OS X 上没有提供类似行为的任何 native API。然而,建立这样的东西是可能的。一点谷歌搜索就出现了CocoaAsyncSocket .
如果您不想依赖第三方库,我建议在 Cocoa 的 CFSocket 之上构建一些东西,就像 CocoaAsyncSocket 开发人员所做的那样,如果您要移植 GUI 程序,而不是深入研究 select()
等核心功能。对一切都使用单一的开发框架是有道理的。
如果你需要你的代码是跨平台的,wxWidgets图书馆有 wxSockets*类层次结构,模拟 Winsock 异步套接字机制。总的来说,wxWidgets 的结构很像 MFC,如果您熟悉 MFC,它可以简化移植。
关于c++ - 什么是 Apple GCC 中的 WSAAsyncSelect() 函数模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5756127/