欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

聊好的fsockopen的非阻塞模式呢?为什么还是会阻塞

程序员文章站 2022-05-20 13:32:29
...
说好的fsockopen的非阻塞模式呢?为什么还是会阻塞
function fsockopen_test(){
$hostname = 'm.cn';
$url = '/test/1.php';
$fp = fsockopen($hostname, 80, $errno, $errstr, 5);
if (!$fp) {
echo "$errstr ($errno)";
return false;
}
stream_set_blocking($fp,0);//开启了手册上说的非阻塞模式
$header = "GET $url HTTP/1.1\r\n";
$header.="Host: $hostname\r\n";
$header.="Connection: Close\r\n\r\n";//长连接关闭
fwrite($fp, $header);
fclose($fp);
}
fsockopen_test();

请求的/test/1.php里面的代码:
sleep(6);
$fp = fopen ( './data.txt' , 'w' );
fwrite ( $fp ,111);
fclose ( $fp );
通过浏览器控制台查看实际还是会等test/1.php执行完毕,这边才刷新。这是为什么呢?
------解决方案--------------------
没问题呀
echo date('Y-m-d H:i:s'), PHP_EOL;
fsockopen_test();
echo date('Y-m-d H:i:s'), PHP_EOL;
可以看到没有延时
聊好的fsockopen的非阻塞模式呢?为什么还是会阻塞

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频