积极答复者
请教一个关于vista系统下面socket::select操作的问题

问题
答案
-
Hi lxyscls,
出现这个问题的可能性很多。
请您确认下载Vista系统下所有的主机的防火墙是否关闭。如果没关闭的话,请把它关闭再试试。
另外也可能和IPv6(IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。)有关。
下面是vista防火墙关闭的步骤:
第一步:打开VISTA系统中“控制面板”,进入“控制面板”选择“安全”选项。
第二步:接下来在“安全”设置窗口中点“Windows防火墙”。这样我们就启动了VISTA系统防火墙的简单模式。
第三步:通过左上角的“启用或关闭Windows防火墙”选项可以实现开启或停止防火墙操作。
谢谢,
Lucy
Lucy Liu [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已建议为答案 SplendourGModerator 2011年3月16日 14:27
- 已标记为答案 VisualElevenModerator 2011年3月31日 0:31
全部回复
-
Hi lxyscls,
出现这个问题的可能性很多。
请您确认下载Vista系统下所有的主机的防火墙是否关闭。如果没关闭的话,请把它关闭再试试。
另外也可能和IPv6(IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。)有关。
下面是vista防火墙关闭的步骤:
第一步:打开VISTA系统中“控制面板”,进入“控制面板”选择“安全”选项。
第二步:接下来在“安全”设置窗口中点“Windows防火墙”。这样我们就启动了VISTA系统防火墙的简单模式。
第三步:通过左上角的“启用或关闭Windows防火墙”选项可以实现开启或停止防火墙操作。
谢谢,
Lucy
Lucy Liu [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已建议为答案 SplendourGModerator 2011年3月16日 14:27
- 已标记为答案 VisualElevenModerator 2011年3月31日 0:31
-
“基本上每一个存在的主机在socket::connect之后都能够通过select拿回来”
什么叫基本上都能拿回来?如果不是每个连接都能收到的话,可以100%肯定你的程序有BUG
0xBAADF00D- 已建议为答案 VisualElevenModerator 2011年3月31日 0:32
-
这个就比较奇怪了,vista的问题大部分都是因为权限的问题 Windows下最好还是用完成端口。
最好你还是检查一下程序发送的时候有没有内存泄露的问题,比如send/recv时有没有大小越界的情况
0xBAADF00D
- 已建议为答案 VisualElevenModerator 2011年3月31日 0:31
-
你好,现在经过我的测试——这个现象出现在vista 32位和xp 64位上面,vista 64和xp32还有win7一切正常,并且是多个机型的电脑,所以应该跟硬件本身没有关系。
http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/23a3b696-0d50-4fdc-ae28-a56e22a2a692
这是我在msdn的英文论坛贴的问题,里面有部分代码
对同网段的255台电脑进行分5段扫描,每段51台
建立socket,setsockopt
然后就是在connect后面进行select的操作——这个时候还根本没有进行任何send/recv的操作,只有在select拿回可写socket后才会做的——调试也证明只要拿得回socket号,后面send的工作是没有问题的,所以后半部分的代码我没有贴