「PHP编程」简单理解PHP之socket编程(三)

2022-10-11 20:59:31 138 0
魁首哥

在上一篇文章《

上图是从PHP手册上截取下来的。从图中语句,我们可以得知,使用socket_select()函数,我们可以在指定的套接字上调用系统的select机制,从而实现I/O 多路复用

那什么是 IO 多路复用呢?

I/O多路复用实际上就是用select, poll , epoll (这里即时select)监听多个I/O 对象,当I/O 对象有变化(有数据)的时候就通知用户进程,这样单个进程可以处理多个socket。如下:

  1. 当用户进程调用了select,那么整个进程会被 block (阻塞);

  2. 而同时, kernel 会“监视”所有select负责的socket;

  3. 当任何一个socket中的数据准备好了,select就会返回;

  4. 这个时候用户进程再调用read操作,将数据从kernel拷贝到用户进程。

所以,I/O 多路复用的特点是通过一种机制一个进程能同时等待多个 文件描述符 ,而这些文件描述符(套接字描述符),其中的任意一个进入读就绪状态,select()函数就可以返回。

代码实现如下:

服务端server.php

客户端与之前一样,保持不变。

收藏
分享
海报
0 条评论
138
上一篇:产妇为啥容易把痔疮拉出来(产后痔疮有什么感觉) 下一篇:番茄畅听最低提现多少钱(番茄畅听提现有一元提现吗)

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码