加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[PHP] stream_set_blocking非阻塞模式影响fgets fread函数

发布时间:2021-05-21 06:53:38 所属栏目:大数据 来源: https://www.jb51.cc
导读:当设置socket为非阻塞时,fread或者fgets函数会立即返回结果,而不需要等待有输入,测试过程可以使用vscode的debug模式来进行 当不设置这一项时,如果客户端没有输入会一直阻塞在这里等待客户端的输入,当加上这个设置后就不会在这等着了 测试代码 ? PHP $main_so

当设置socket为非阻塞时,fread或者fgets函数会立即返回结果,而不需要等待有输入,测试过程可以使用vscode的debug模式来进行
当不设置这一项时,如果客户端没有输入会一直阻塞在这里等待客户端的输入,当加上这个设置后就不会在这等着了

测试代码

<?PHP
$main_socket = stream_socket_server("tcp://0.0.0.0:8888",$error_code,1)">$error_msg)  or die('create server Failed');
while(1)
{
    set_error_handler(function(){}); 
    $new_socket = stream_socket_accept($main_socket,5,1)">$remote_address);
    restore_error_handler();
    if(!$new_socket) continue;
    //屏蔽或开启本行代码进行调试
    stream_set_blocking($new_socket,0);
    $request = fread(var_dump($request);
} 

?

?客户端连接上后没有输入直接会执行到这一步

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读