c++ - 什么是 Apple GCC 中的 WSAAsyncSelect() 函数模拟?

标签 c++ sockets gcc winsock

请告诉我将 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/

相关文章:

c++ - 是否有用于 C++ 短路的 gcc 扩展?

c++ - 我是否以错误的方式声明了 getpriorityvalues 函数?

python - 为什么来自套接字服务器的文本会删除以前写入的文本?

带有扩展ascii代码的java字符串到字节数组(每个代码分配一个字节)

c++ - 链接静态库与共享库问题

c++ - 如何忽略 'comparison between signed and unsigned integer expressions' ?

C++ 以 utf 8 字符写入 mysql 数据库?

c++ - 定义模板函数的语法错误

c++ - mktime() 返回的意外值

php - PHP的简单服务器/客户端(UDP,数据报)无法看到对方