0

我面临的问题:-

在 Win7 Home Premium 上使用包含 IPv6 和 IPv4 套接字的 FD_SET 集调用 Select(..) API 时会引发错误,但相同的应用程序在其他 win7 机器上运行良好。但是如果我在 FD_SET 中只使用 IPv6 或 IPv4 套接字,那么它运行良好。所以我认为,系统同时支持 IPv6 和 IPv4。

我尝试使用以下链接中的服务器:-

http://msdn.microsoft.com/en-us/library/windows/desktop/ms738639%28v=vs.85%29.aspx

即使这个示例也是来自 select 调用的相同错误。

任何人都可以帮助我了解此错误背后的原因并解决此问题。

谢谢!!!

4

1 回答 1

0

不幸的是,Windows 不允许在对select. 这是因为每个提供者都被允许实现自己的select处理程序。

fd_set 结构中包含的套接字必须与单个服务提供者相关联。--选择功能

Windows 将选择一个提供者发送select到(我相信集合中第一个套接字的提供者),并且该提供者不会识别其他提供者的套接字。老实说,无论如何你都不应该使用select它——它只是为了与 BSD 套接字接口兼容而提供的。这绝对不是“Windows 方式”。

于 2012-05-22T10:05:57.907 回答