再次回来!
我一直在使用select()在Windows上进行一些asynchronous套接字编程,它一直工作得很好。 然而它只能扩展到1024个clients.Poll()是解决这个限制的方法,而且我知道它可以在linux和unix上运行。 但它不适用于Windows系统正确?
我读了WsaPoll(),是否有完全相同的function? 我必须链接哪些库才能使用它?
我可以使用FD_SETSIZE在Windows中安全地增加套接字号吗? 我的最终程序将在Linux服务器上。 不过,我正在Windows系统上testing。 我应该把我的testing机交换到一个linux的盒子? (可能要反正)
否则,你会推荐使用Windows?
(抱歉,所有的问题,我正在自己研究,我保证= D)
是WSAPoll()
行为像poll()
。 您将需要使用WSAGetLastError
来找出错误。 错误代码不匹配,根据WindowsSDK和您的系统版本,posix代码可能会或可能不会在winsock2头中定义。
要使用WSAPoll
您必须包含WSAPoll
和链接到ws2_32.lib,并在Windows Vista / server 2008上运行应用程序。
然而,在你的代码中使用WSAPoll
并不总是阻止它在Windows XP上编译,而当你启动你的应用程序时,你将会得到一个错误。
如果您不打算在Windows上运行您的应用程序,那么我建议您跳过SDK,build,dll和Windows版本的问题,并设置一个Linux虚拟机来开发。
libevent将使用Windows,Linux,Solaris,OS X以及所有BSD衍生产品上的事件驱动编程的最佳可用机制。
在Windows上, WSAAsyncSelect
应该允许您在单个线程中处理来自数千个套接字的事件。