社区
C语言
帖子详情
多线程socket非阻塞连接问题,急。。。。
L_serein
2009-02-17 04:24:36
利用多线程同时通过socket发起多个tcp的connect请求,会出现排队的现象么?connect是非阻塞的。
我利用了slect来控制等待时间,但是如果出现排队的话,我的等待时间是不可控制的,并会随着线程数增加而增加。
是不是多线程+非阻塞模型是不可行的呀?
...全文
209
7
打赏
收藏
多线程socket非阻塞连接问题,急。。。。
利用多线程同时通过socket发起多个tcp的connect请求,会出现排队的现象么?connect是非阻塞的。 我利用了slect来控制等待时间,但是如果出现排队的话,我的等待时间是不可控制的,并会随着线程数增加而增加。 是不是多线程+非阻塞模型是不可行的呀?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
猫已经找不回了
2009-02-17
打赏
举报
回复
[Quote=引用 3 楼 L_serein 的回复:]
我试想做对一个ip段的某一个端口进行扫描。如果阻塞的太慢了。如果某ip该端口未开得等十几秒
[/Quote]
端口扫描你用多线程的?一个端口一个线程?帖代码咯。你扫描6万多个端口肯定没那么多线程可用吧?
我以前写过端口扫描,没用多线程,直接限定时间的select加阻塞的recvfrom。按顺序扫描,这样可能时间上扫描全部65535个端口一次得好几分钟。
challenge99
2009-02-17
打赏
举报
回复
如果是为了做扫描, 不connect不行么?
自己处理SYN 和 RST 我觉的更好, 而且是非阻塞的
hhyttppd
2009-02-17
打赏
举报
回复
[Quote=引用 4 楼 L_serein 的回复:]
我用非阻塞connect后,然后用select设置超时时间。但是随着我threads数增加,select所需要设置的等待时间也要增加才能发现开放的端口。所以我怀疑是不是多个socket要同时需要网卡对外连接,从而有了这个排队等待的时间。从而使select需要阻塞的时间变长
[/Quote]
应该不是这样的。
L_serein
2009-02-17
打赏
举报
回复
我用非阻塞connect后,然后用select设置超时时间。但是随着我threads数增加,select所需要设置的等待时间也要增加才能发现开放的端口。所以我怀疑是不是多个socket要同时需要网卡对外连接,从而有了这个排队等待的时间。从而使select需要阻塞的时间变长
L_serein
2009-02-17
打赏
举报
回复
我试想做对一个ip段的某一个端口进行扫描。如果阻塞的太慢了。如果某ip该端口未开得等十几秒
猫已经找不回了
2009-02-17
打赏
举报
回复
多线程socket为何需要排队?不过配合select的话直接阻塞模式就可以了。
Dinelgua
2009-02-17
打赏
举报
回复
建立连接还是采用阻塞模式 带超时时间的比较好
因为正常的建立连接 耗时并不长,如果到超时时间 例如5S还连不上估计确实存在问题可以重联或放弃
且如果是多线程 每个线程负责一个连接 就互不影响更好了
所以对于建立连接因为频率低,安全性要求高 所以还是同步好一些,最好再设置个合理的超时时间 不然一直等下去也不好
发送和接收数据建议采用非阻塞模式,毕竟频率很高
socket
/io(3)、
socket
阻塞与
非阻塞
,同步与异步、I/O模型
socket
阻塞与
非阻塞
,同步与异步 作者:huangguisu 1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/
非阻塞
(Unblock)四种调用方式: 同步: 所谓同步,就是在发出一个...
socket
的阻塞模式和
非阻塞
模式
文章目录
socket
的阻塞模式和
非阻塞
模式如何将
socket
设置为
非阻塞
模式send和recv函数在阻塞和
非阻塞
模式下的表现
非阻塞
模式下send和recv函数的返回值总结阻塞与
非阻塞
socket
的各自使用场景
socket
的阻塞模式和
非阻塞
...
非阻塞
socket
编程
一. 阻塞、
非阻塞
、异步 阻塞:阻塞调用是指调用结果返回之前,当前...
非阻塞
:
非阻塞
和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。epoll工作在
非阻塞
模式时,才会发挥作...
写了一个
多线程
服务器(基于
非阻塞
socket
)
很简单,它就是很常规的
多线程
服务器。 如果你还不太清楚,那我画个图,你就明白了。三个男生都追一个女生,这个女生又不好拒绝,于是与三个男生之间保持通信关系。 涛哥手绘 服务端实现 既然是
多线程
服务器...
Socket
的
非阻塞
模式
socket
的阻塞与
非阻塞
工作模式 设置
socket
非阻塞
的方法
非阻塞
socket
编程
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章