【发布时间】:2011-04-22 13:53:25
【问题描述】:
请告诉我将 WSAAsyncSelect() 函数移植到 GCC 的最轻松的方法...
【问题讨论】:
-
WSAAsyncSelect特定于 Windows 平台,您可以将 GCC 定位到 Cygwin 或 MinGW 下,您应该指定 OSX 平台而不是编译器。
请告诉我将 WSAAsyncSelect() 函数移植到 GCC 的最轻松的方法...
【问题讨论】:
WSAAsyncSelect 特定于 Windows 平台,您可以将 GCC 定位到 Cygwin 或 MinGW 下,您应该指定 OSX 平台而不是编译器。
虽然select() 和pselect() 可能适用于您的应用程序,但它们与WSAAsyncSelect() 大不相同。这些函数让您可以对其他非阻塞套接字或套接字集合进行受控阻塞。 poll() 也是如此。
另一方面,Winsock 的异步套接字永远不会阻塞。还有异步通知的大问题,你的代码无疑依赖于它。
我认为 OS X 上没有任何提供类似行为的原生 API。但是,有可能建立这样的东西。出现了一点谷歌搜索CocoaAsyncSocket。
如果您不想依赖第三方库,我建议您在 Cocoa 的 CFSocket 之上构建一些东西,就像 CocoaAsyncSocket 开发人员所做的那样,如果您将通过 GUI 程序进行移植,而不是深入研究核心像select() 这样的函数。对所有事物都使用单一开发框架是有道理的。
如果您需要跨平台代码,wxWidgets 库具有 wxSockets* 类层次结构,它模拟 Winsock 异步套接字机制。总的来说,wxWidgets 的结构很像 MFC,如果你熟悉的话,它可以简化移植。
【讨论】:
相信你想看看select函数
【讨论】:
我使用pselect 函数。
【讨论】: