免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zuii
打印 上一主题 下一主题

[C] 非阻塞connect实现端口扫描的问题-connect提前返回怎么处理? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-05-26 22:30 |只看该作者
会LS
线程的暂时不考虑
关于慢网速,我设置了5秒的超时,没办法,5秒都不返回就太慢了吧?

现在有个关键问题是我在8楼提的那个,你看下是怎么回事?

你有MSN吗?可以加我 我们聊下  我的是 williamzuii@163.com

论坛徽章:
0
12 [报告]
发表于 2008-05-27 00:02 |只看该作者
UNIX® Network Programming Volume 1, Third Edition

16.3 Nonblocking connect

Many implementations have a timeout for connect that is between 75 seconds and several minutes

论坛徽章:
0
13 [报告]
发表于 2008-05-27 00:16 |只看该作者
回LS,connect自身的超时时间,我的系统内核是linux kernel 2.6.24,测试了是189s,经历6次重传SYN.
=================================
我的这个问题似乎解决了

只是在select之前加上句sleep(5)

我的想法是既然即使select前有connect返回也会被select检测到,那么为什么不让所有应该返回的都返回了再select呢? 所以就等待5秒(当然只是随便设置的),得到所有返回

没想到可以了,连续测试成功!!
有待进一步测试
========================
不过select的返回值还是个问题,飘忽不定的,有时正确,有时比MAXPORT还大~~这个有待讨论哦!

论坛徽章:
0
14 [报告]
发表于 2008-05-27 00:19 |只看该作者
哦   哈哈  你在12给的正好!!!哈哈,原来如此,没想到
非常感谢
你用QQ不? 我的412430450 加下吧,希望能和你交流下下~~

论坛徽章:
0
15 [报告]
发表于 2008-05-27 00:22 |只看该作者
我还觉得多线程好~~

萝卜白菜~~
我很少用IM

论坛徽章:
0
16 [报告]
发表于 2008-05-27 00:26 |只看该作者
你再帮我看下这个,我做了两个测试
http://blog.chinaunix.net/u1/53217/showart_703185.html
看下说的对不对...

论坛徽章:
0
17 [报告]
发表于 2008-05-27 00:34 |只看该作者
觉得你应该看一下线程与进程使用的资料。
还有fd在线程内共享不能说明多线程不适合端口扫描这个结论,关键看你怎么用。
多参考以下别人的代码有好处。

论坛徽章:
0
18 [报告]
发表于 2008-05-27 01:13 |只看该作者
知道, 我说的线程不适合是说一个线程建立1000个套接字
和你说的那个不矛盾的~~
===============
我那个是在非阻塞的前提下再来测试多线程与多进程的情况


哎,很多细节的东西需要学啊~~

非常感谢你哈!!!呵呵
=======================

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
19 [报告]
发表于 2008-05-27 10:16 |只看该作者

回复 #9 zuii 的帖子

还是建议你将select的第一个参数换成正规做法.. 如果在你创建socket的时候创建了其他的句柄..那样就是不是你所说的maxport +3 了..

论坛徽章:
0
20 [报告]
发表于 2008-05-27 12:25 |只看该作者

谢LS
可以这样,在循环里加一句
if(i==MAXPORT-1)
    maxfd=fd;
然后把select的第一个参数换成maxfd+1,这样应该可以了

[ 本帖最后由 zuii 于 2008-5-27 12:26 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP