stream_socket_accept设置非阻塞,socket_accept设置非阻塞

编写socket服务检测是否有新连接加入都要使用stream_socket_accept和socket_accept来获取,但是默认是阻塞的,想要更换为非阻塞并不能用stream_set_blocking($socket, false),因为stream_set_blocking只是设置socket的读写不阻塞,针对的类似于fread/fwrite系列。如果需要对stream_socket_accept设置非阻塞,只需要设置超时时间为0即可。

while (true)
{
    \set_error_handler(function(){});
    $conn = stream_socket_accept($socket,0);
    \restore_error_handler();
    if($conn)
    {
        echo 'a client join this server'.PHP_EOL;
    }
}

stream_socket_accept会输出错误因此加上了屏蔽的代码,此处学习自workerman,感谢workerman的项目

访客
邮箱
网址

通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top