比如http://a.com/a.phphttp://a.com/b.php同时请求出去试过了PHP下的curl,最多只能到3个request同时发出,而我需要10来个。用途举例:我是用于攻击应用程序的,比如一个论坛有打卡机制,程序设计上每天只能打一次卡,但如果保证有N(N>=1)个打卡的请求同时达到伺服器,极有可能攻击成功。所以,希望各位别说啥这不是多线程呀啥的(multi-threads)。
2 回答
撒科打诨
TA贡献1934条经验 获得超2个赞
这是多进程吧,连多线程都算不上PHP的多并发curl请求(curl_multi_系列函数),我记得没有什么限制吧,能贴一下代码上来吗?shell下执行多个curl当然是多进程。甚至于像网络蚂蚁那样分块HTTP下载单个文件都未必是多线程,因为每个HTTP请求到头来还是单独的。追究到底是用多进程还是多线程来做并发,无关紧要。但可以肯定的是:无论是用shell还是用php,同时启动多个/usr/bin/curl进程肯定是没问题的。楼主应该追究的重点,我估计在于如何多个HTTP请求同时发到服务器上。由于连接服务器的时间前后有所不同,所以如果不认真处理,并发的时间一致性恐怕不好。这个的解决方式是把连接请求一分为二,把创建连接和发送HTTP请求割裂开来操作。做法是让所有的并发端先连接到服务器,待连接全部就绪之后,再一起发送HTTP请求。这个我查了一下,似乎不是curl能做得到的,需要写程序。
jeck猫
TA贡献1909条经验 获得超7个赞
这个问题我认为最合适的做法是用xargs的多进程:先把你的所有url存到一个文件里,比如说urls.txt吧 xargs的-P可以指定最大的进程数。参考manxargs另外,楼主要测试web程序的话也可以用apacheab的呀。
添加回答
举报
0/150
提交
取消