php能实现socket通信吗

php能实现socket通信,其实现方法:1、在客户端创建“socketsocket_create();”并向服务器请求连接“socket_connect();”;2、在服务端创建“socketsocket_create();”并绑定IP和端口号“socket_bind();”;3、通过“socket_wirte();socket_read”读客户端的消息或给客户端写消息即可。

本教程操作环境:Windows10系统、PHP8.1版、DELL G3电脑

php能实现socket通信吗?

socket PHP:详细简单的socket TCP通信PHP实现

1 背景介绍

目标:我希望通过套接字的TCP传输来搭建一个服务器,这个服务器的作用是:接受多个客户端的连接并完成他们的相互通信。比如客户端A,客户端B同时连接到服务器S,客户端A向服务器S发送消息,服务器S会将A的消息转发给B,同理,B的消息也可以通过S被转发到A。这样就实现了客户端A和客户端B之间的相互通信
本次我们只实现客户端与服务器之间连接并通信,暂时没有写服务器的转发功能。

2 TCP的简单介绍

2.1 TCP的“三次握手”

TCP的三次握手可以确保服务器和客户端之间可以正常通信。三次握手的过程:至于这个过程的解释,可以点击下面的链接来查看。
在这里插入图片描述
参考:https://www.yht7.com/link/70203474234c15a59de1eacc053f5690

2.2 IP和PORT

服务器需要有一个IP,TCP通信时,还需要提供一个端口号。
客服端需要有一个IP,TCP通信时,也需要提供一个端口号。

个人理解:IP就是地址,可以理解为一个房子,当你需要建立通信的时候,首先肯定得相互知道这个房子在哪里才可以吧,要不然我们得信息发送到哪里呢?
PORT端口,端口号可以理解为这个房子的一个门,我们需要指定一个门,将消息从这个门里面传送进去或者从这个门接受消息。

2.2 客户端与服务器简要通信的过程

2.2.1 php部分相关函数

客户端:

  1. 创建socketsocket_create();
  2. 向服务器请求连接socket_connect();
  3. 给服务器发送消息/接受服务器消息socket_wirte(); / socket_read();
  4. 关闭socketsocket_close();

服务器:

  • 创建socketsocket_create();

  • 绑定IP和端口号socket_bind();

  • 监听IP和端口号(0.0.0.0表示任意IP)socket_listen();

  • 阻塞等待客服端的连接socket_accept();

  • 读客户端的消息/给客户端写消息socket_wirte(); / socket_read();

  • 关闭socketsocket_close();

2.2.2 简要通信过程
  1. 服务器创建socket,并绑定IP和PORT,然后进入监听状态等待客服端发起连接。
  • 客户端创建socket,对指定服务器IP和PORT进行连接。

  • 服务器接受客服端发起的连接。

  • 双方可以互相发送数据

  • 双方关闭socket。

AB创建socket创建socket,设置允许访问IP和PORT监听某个(或所有)IP和某个端口,并进入阻塞等待客户端向指定服务器IP/PORT发起connet接受客户端A的connet双方已经建立连接发送信息发送信息通信结束后A,B同时关闭socketAB

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » php能实现socket通信吗