swoole( 网络IO 五)

 

Socket_create 原生

 

stream_socket_server

协议+ip+端口(如:tcp://10.0.0:9000

创建一个socket,服务会处于挂起的状态,等待连接进来。

特点会创建socket  server的socket(服务端的)

 

Stream_socket_client

特点会创建socket  client的socket(客户端的)

 

stream_socket_accept

接收server和client连接的资源流(建立连接)

 

fread 读取信息

 

fwrite 发送信息给socket通道(写信息)

 

fclose 关闭连接

 

call_user_func 调用某一个方法

 

stream_set_blocking 设置为非阻塞,设置写和读的非阻塞

 

stream_select 获取到可读取状态的资源

ip+端口访问 -> 内核会检测到这个数据包 -> socket的资源流会被写在一个池子里,里面会有一个 server socket,剩余的是其他的客户端 -> stream_select检测是否有可读之后,还需要判断下是否是创建客户端连接还是发送信息

 

Socket是什么

程序之间通信的通道,并且遵循tcp,udp协议

 

本质是linux以resource资源方式存在的

程序通信的本质

 

通信的方式

 

服务端 客户端的通信

  1.建立连接

  2.行成通道socket

  3.Stream_socket_accept

 

阻塞调用:

  不断聚集新的连接,会阻塞

  阻塞原因是因为单线程方式处理连接,必须等前面的处理完之后,再处理后面的连接。

  我们把这种现象叫做“阻塞调用”

 

如何解决?(网络IO模型)

  1. 异步
  2. 多进程
  3. reactor模型
发布了66 篇原创文章 · 获赞 2 · 访问量 4659

猜你喜欢

转载自blog.csdn.net/converoscar/article/details/104255107
今日推荐