php----stream_select函数用法
http://blog.csdn.net/tongnianhani/article/details/73695314在这篇文章中我们已经简单介绍了stream_socket_pair函 数的简单用法,如果你还不熟悉他的用法,可以点击进去先看下这个函数的用法,因为我们接下来要介绍的stream_select函数的用法时会用到这个函数;
简单说stream_select 函数就是返回参数$read,$write已经可读或者可写状态的的数量,如果基本可读也不可写则超时时间过后就会返回0,从文档介绍中可以看到
&$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函数用法相关推荐
- 2021年大数据常用语言Scala(三十七):scala高级用法 高阶函数用法
目录 高阶函数用法 作为值的函数 匿名函数 柯里化(多参数列表) 闭包 高阶函数用法 Scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是"头等公民",它和Int. ...
- php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?
foreach的使用方法小编不是很明确,分享达人指教一下.foreach (array_expressforeach($array as $key) { if(xxxx) { break; //bre ...
- linux中awk下 gsub函数用法
gsub函数则使得在所有正则表达式被匹配的时候都发生替换 gsub(regular expression, subsitution string, target string);简称 gsub(r,s ...
- ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...
- 详细记录python的range()函数用法
详细记录python的range()函数用法 使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的sl ...
- python Pool常用函数用法总结
在本篇内容里小编给大家整理的是一篇关于python Pool常用函数用法总结内容,有需要的朋友们可以学习下. 1.说明 apply_async(func[,args[,kwds]):使用非堵塞调用fu ...
- C++计算程序耗时函数用法汇总
文章目录 前言 方法一(使用频率:常用) 方法二(使用频率:次之) 方法三(使用频率:常用) 补充:方法四 方法五 最常用的时间戳获取方法 前言 这里简单将自己在项目中经常用到的统计耗时的函数用法做个 ...
- undistortPoints()函数用法总结
undistortPoints()函数用法总结 函数调用:C++: void undistortPoints(InputArray src, OutputArray dst, InputArray ...
- 求介绍matlab函数用法的书,MATLAB初学者教程--函数用法的简单介绍
1.4 函数用法的简单介绍 1.4.1什么是函数 似乎很多人一听到函数这个词就会想到数学中的某个概念,然后对于恐惧数学的同学就开始打退堂鼓.在matlab当中到处可以用到函数,它的出现可以让我们用很简 ...
最新文章
- python解压zip文件_Python中最快解压zip文件的方法
- 4.3.4 网络地址转换NAT
- 何新生—你是哪国人?
- php5.2.10安装_安装 | 起步 | Laravel 5.2 中文文档
- T1683 车厢重组 codevs
- FedML联邦机器学习框架正式开源,助力算法开发和性能比较
- Cert manager自动签发/更新证书
- [翻译]运用文件解析器在任意文件中使用虚拟应用路径(~)
- 2018年技术上该怎样努力
- oracle 生成随机姓名_Oracle 生成随机数,随机字符串
- SQL SERVER 2012/2014 链接到 SQL SERVER 2000的各种坑
- 【Python】检测字符串的方法
- RBAC-基于角色的权限管理
- 第七届蓝桥杯c语言a组答案,第七届蓝桥杯 C语言A组试题.pdf
- 有没有换发型的软件?一分钟智能更换发型
- Coap协议(1)入门简介
- 30岁宝妈转行UI设计,后来怎么样了?
- OLS最小二乘法回归模型
- 6p14推挽胆机20w功放电路图_6P14推挽双输出牛胆机
- 腾讯课堂直播: 手把手教你开发《3D街头篮球》