http://blog.csdn.net/tongnianhani/article/details/73695314在这篇文章中我们已经简单介绍了stream_socket_pair函 数的简单用法,如果你还不熟悉他的用法,可以点击进去先看下这个函数的用法,因为我们接下来要介绍的stream_select函数的用法时会用到这个函数;

简单说stream_select 函数就是返回参数$read,$write已经可读或者可写状态的的数量,如果基本可读也不可写则超时时间过后就会返回0,从文档介绍中可以看到

int stream_select ( array&$read , array &$write , array &$except , int $tv_sec [, int $tv_usec = 0 ] ) 前三个参数都是引用,所以如果不可读则$read返回的是空数组,$write也是同理,举例说明
<?php
$sockets  =  stream_socket_pair ( STREAM_PF_UNIX ,  STREAM_SOCK_STREAM ,  STREAM_IPPROTO_IP );
$pid      =  pcntl_fork ();
$timeout = 2;if ( $pid  == - 1 ) {die( 'could not fork' );} else if ( $pid ) {/* parent */fclose ( $sockets [ 0 ]);fwrite ( $sockets [ 1 ],  "child PID:  $pid \n" );fwrite ( $sockets [ 0 ],  "message from child\n" );$str = stream_select($sockets,$w=null,$e=null,$timeout);var_dump($str);var_dump($sockets);echo  'main-'.fgets ( $sockets [ 1 ]);//echo  'child-'.fgets ( $sockets [ 0 ]);fclose ( $sockets [ 1 ]);} else {/* child */fclose ( $sockets [ 1 ]);fwrite ( $sockets [ 0 ],  "message from child\n" );echo  'child-'.fgets ( $sockets [ 0 ]);$str = stream_select($sockets,$w=null,$e=null,$timeout);var_dump($str);var_dump($sockets);fclose ( $sockets [ 0 ]);}

上面的例子返回的结果为:

child-child PID:  2510 
int(1)
array(1) {
  [1] =>
  resource(5) of type (stream)
}
main-message from child
int(1)
array(1) {
  [0] =>
  resource(4) of type (stream)
}

如果没有可读内容,则返回空数组,代码如下

<?php
$sockets  =  stream_socket_pair ( STREAM_PF_UNIX ,  STREAM_SOCK_STREAM ,  STREAM_IPPROTO_IP );
$pid      =  pcntl_fork ();
$timeout = 2;
$str = stream_select($sockets,$w=null,$e=null,$timeout);var_dump($str);var_dump($sockets);

输出结果:

int(0)
array(0) {
}

php----stream_select函数用法相关推荐

  1. 2021年大数据常用语言Scala(三十七):scala高级用法 高阶函数用法

    目录 高阶函数用法 作为值的函数 匿名函数 柯里化(多参数列表) 闭包 高阶函数用法 Scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是"头等公民",它和Int. ...

  2. php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?

    foreach的使用方法小编不是很明确,分享达人指教一下.foreach (array_expressforeach($array as $key) { if(xxxx) { break; //bre ...

  3. linux中awk下 gsub函数用法

    gsub函数则使得在所有正则表达式被匹配的时候都发生替换 gsub(regular expression, subsitution string, target string);简称 gsub(r,s ...

  4. ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)

    ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...

  5. 详细记录python的range()函数用法

    详细记录python的range()函数用法 使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的sl ...

  6. python Pool常用函数用法总结

    在本篇内容里小编给大家整理的是一篇关于python Pool常用函数用法总结内容,有需要的朋友们可以学习下. 1.说明 apply_async(func[,args[,kwds]):使用非堵塞调用fu ...

  7. C++计算程序耗时函数用法汇总

    文章目录 前言 方法一(使用频率:常用) 方法二(使用频率:次之) 方法三(使用频率:常用) 补充:方法四 方法五 最常用的时间戳获取方法 前言 这里简单将自己在项目中经常用到的统计耗时的函数用法做个 ...

  8. undistortPoints()函数用法总结

    undistortPoints()函数用法总结   函数调用:C++: void undistortPoints(InputArray src, OutputArray dst, InputArray ...

  9. 求介绍matlab函数用法的书,MATLAB初学者教程--函数用法的简单介绍

    1.4 函数用法的简单介绍 1.4.1什么是函数 似乎很多人一听到函数这个词就会想到数学中的某个概念,然后对于恐惧数学的同学就开始打退堂鼓.在matlab当中到处可以用到函数,它的出现可以让我们用很简 ...

最新文章

  1. python解压zip文件_Python中最快解压zip文件的方法
  2. 4.3.4 网络地址转换NAT
  3. 何新生—你是哪国人?
  4. php5.2.10安装_安装 | 起步 | Laravel 5.2 中文文档
  5. T1683 车厢重组 codevs
  6. FedML联邦机器学习框架正式开源,助力算法开发和性能比较
  7. Cert manager自动签发/更新证书
  8. [翻译]运用文件解析器在任意文件中使用虚拟应用路径(~)
  9. 2018年技术上该怎样努力
  10. oracle 生成随机姓名_Oracle 生成随机数,随机字符串
  11. SQL SERVER 2012/2014 链接到 SQL SERVER 2000的各种坑
  12. 【Python】检测字符串的方法
  13. RBAC-基于角色的权限管理
  14. 第七届蓝桥杯c语言a组答案,第七届蓝桥杯 C语言A组试题.pdf
  15. 有没有换发型的软件?一分钟智能更换发型
  16. Coap协议(1)入门简介
  17. 30岁宝妈转行UI设计,后来怎么样了?
  18. OLS最小二乘法回归模型
  19. 6p14推挽胆机20w功放电路图_6P14推挽双输出牛胆机
  20. 腾讯课堂直播: 手把手教你开发《3D街头篮球》

热门文章

  1. salvage 数据块打捞工具
  2. 计算机科学与技术学业目标,计算机科学与技术专业本科培养目标及要求.doc
  3. 方案A:vpn-instance to vpn-instance(PE-CE)
  4. Raspberry Pi家庭监控报警系统——软件篇
  5. 《Linux C编程从入门到精通》——1.4 Linux的常用命令
  6. learn java step by step day14
  7. uniapp文字穿插表情消息处理
  8. CDS-MVSNet理解
  9. curl+个人证书访问https站点
  10. 边界函数(decision boundary)