【问题标题】:What is WSAAsyncSelect() function analogue in Apple GCC?Apple GCC 中的 WSAAsyncSelect() 函数模拟是什么?
【发布时间】:2011-04-22 13:53:25
【问题描述】:

请告诉我将 WSAAsyncSelect() 函数移植到 GCC 的最轻松的方法...

【问题讨论】:

  • WSAAsyncSelect 特定于 Windows 平台,您可以将 GCC 定位到 Cygwin 或 MinGW 下,您应该指定 OSX 平台而不是编译器。

标签: c++ sockets gcc winsock


【解决方案1】:

虽然select()pselect() 可能适用于您的应用程序,但它们与WSAAsyncSelect() 大不相同。这些函数让您可以对其他非阻塞套接字或套接字集合进行受控阻塞。 poll() 也是如此。

另一方面,Winsock 的异步套接字永远不会阻塞。还有异步通知的大问题,你的代码无疑依赖于它。

我认为 OS X 上没有任何提供类似行为的原生 API。但是,有可能建立这样的东西。出现了一点谷歌搜索CocoaAsyncSocket

如果您不想依赖第三方库,我建议您在 Cocoa 的 CFSocket 之上构建一些东西,就像 CocoaAsyncSocket 开发人员所做的那样,如果您将通过 GUI 程序进行移植,而不是深入研究核心像select() 这样的函数。对所有事物都使用单一开发框架是有道理的。

如果您需要跨平台代码,wxWidgets 库具有 wxSockets* 类层次结构,它模拟 Winsock 异步套接字机制。总的来说,wxWidgets 的结构很像 MFC,如果你熟悉的话,它可以简化移植。

【讨论】:

    【解决方案2】:

    相信你想看看select函数

    【讨论】:

    • 感谢 Vink 和 Jay 的帮助!如果问的不是太多,你能提供一些例子吗?我试图比较 pselect() 和 WSAAsyncSelect() 的参数并查看了一些示例,现在我完全迷失了......
    【解决方案3】:

    我使用pselect 函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 2011-02-03
      • 2013-01-25
      • 2012-12-07
      • 1970-01-01
      相关资源
      最近更新 更多