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

梦康 2014-03-24 04:22:51
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执行完毕,这边才刷新。这是为什么呢?
...全文
195 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦康 2014-03-29
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
你发的代码本来就没有那一段
哈哈哈,我粘贴错了。嗯,说的是!谢谢版主!
xuzuning 2014-03-24
  • 打赏
  • 举报
回复
你发的代码本来就没有那一段
梦康 2014-03-24
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
没问题呀
echo date('Y-m-d H:i:s'), PHP_EOL;
fsockopen_test();
echo date('Y-m-d H:i:s'), PHP_EOL;
可以看到没有延时
找到原因了,把这段代码注释掉就OK了
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);
    /*$html = '';
    while (!feof($fp)) {
        $html.=fgets($fp);
    }
    echo $html;*/
    fclose($fp);
}
echo time(),'<br>';
fsockopen_test();
echo time(),'<br>';
梦康 2014-03-24
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
没问题呀
echo date('Y-m-d H:i:s'), PHP_EOL;
fsockopen_test();
echo date('Y-m-d H:i:s'), PHP_EOL;
可以看到没有延时
我修改成你的代码,然后把原来的输出注释了,发现还是有延时呢
梦康 2014-03-24
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
没问题呀
echo date('Y-m-d H:i:s'), PHP_EOL;
fsockopen_test();
echo date('Y-m-d H:i:s'), PHP_EOL;
可以看到没有延时
额?我这边怎么有呢?
xuzuning 2014-03-24
  • 打赏
  • 举报
回复
没问题呀
echo date('Y-m-d H:i:s'), PHP_EOL;
fsockopen_test();
echo date('Y-m-d H:i:s'), PHP_EOL;
可以看到没有延时

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧