Hook到的Winsock函数里怎样判断阻塞/非阻塞模式?

时间:2021-10-05 16:16:40
俺想做一个下载流量控制的工具(类似于netlimiter),钩出recv函数,准备在流量超过指定值时,先调用Sleep(),再调用真正的recv()。在阻塞模式下延时没有问题,用IE试了效果不错;但是到了非阻塞模式下,比如http下载,卡个半秒程序就死掉了。。。所以想知道怎样判断当前socket是否阻塞模式。有人能指点俺一下吗?谢谢

6 个解决方案

#1


给大家推荐个

好的技术群  大家一起学习啊

30178567

#2


俺自己有个思路,可以拦截setsockopt函数,但是很有可能是安装钩子之前宿主程序就调用过setsockopt了,那就拦截不到了。。。
各位给个启发吧

#3


不论是否阻塞模式,全部按照非阻塞模式处理,这样应该能够解决你的问题

#4


呵呵,WSARECV 异步的你能HOOK到吗?

#5


1

#6


WSARECV能HOOK到. 不过异步接收,想对buf做点什么好像不可能了..

#1


给大家推荐个

好的技术群  大家一起学习啊

30178567

#2


俺自己有个思路,可以拦截setsockopt函数,但是很有可能是安装钩子之前宿主程序就调用过setsockopt了,那就拦截不到了。。。
各位给个启发吧

#3


不论是否阻塞模式,全部按照非阻塞模式处理,这样应该能够解决你的问题

#4


呵呵,WSARECV 异步的你能HOOK到吗?

#5


1

#6


WSARECV能HOOK到. 不过异步接收,想对buf做点什么好像不可能了..