首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更多Poll()?

更多Poll()?
EN

Stack Overflow用户
提问于 2011-03-19 07:47:22
回答 3查看 1.1K关注 0票数 1

再来一次!

我已经在windows上用select()进行了一些异步套接字编程,并且运行得很好。然而,它只能扩展到1024,clients.Poll()是绕过这一限制的方法,我知道它在linux和unix上都能工作。但是它不能在windows系统上工作,对吗?

我读到过WsaPoll(),它有没有完全相同的功能?我必须链接到哪些库才能使用它?

我能用FD_SETSIZE在windows中安全地增加插座数吗?我的最终程序将运行在linux服务器上。然而,我现在正在windows系统上进行测试。我应该把我的测试机器换成linux机器吗?(可能无论如何都会这样做)

否则,你会推荐在windows上使用什么?

(对于所有的问题,我很抱歉,我正在自己做研究,我保证=D)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-19 08:27:06

是的,WSAPoll()的行为类似于poll()。您将需要使用WSAGetLastError来找出错误所在。错误代码不匹配,根据WindowsSDK和您的系统版本,POSIX码可能定义在winsock2头中,也可能不定义。

要使用WSAPoll,您必须包含winsock2.h和指向ws2_32.lib的链接,并在Windows Vista/Server2008及更高版本上运行该应用程序。

但是,在代码中包含WSAPoll并不总是会阻止它在Windows XP上编译,相反,在启动应用程序时会出现错误。

如果您不打算在Windows上运行您的应用程序,那么我建议您跳过SDK、build、dll和Windows版本的痛苦,设置一个Linux vm来进行开发。

票数 3
EN

Stack Overflow用户

发布于 2011-03-19 10:07:59

libevent将在Windows、Linux、Solaris、OS和所有BSD衍生产品上使用最佳可用的事件驱动编程机制。

票数 2
EN

Stack Overflow用户

发布于 2011-03-19 08:31:06

在Windows上,WSAAsyncSelect应该允许您在单个线程中处理来自数千个套接字的事件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5358907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档