当前位置:首页 > PHP

php 实现socket通信

2026-02-15 13:53:32PHP

PHP 实现 Socket 通信

创建 Socket 服务器

使用 socket_create 函数创建一个 Socket 资源,指定协议族(如 AF_INET)、Socket 类型(如 SOCK_STREAM)和协议(如 SOL_TCP)。绑定 IP 地址和端口后,调用 socket_listen 开始监听连接请求。

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, '0.0.0.0', 8080);
socket_listen($socket);

接受客户端连接

通过 socket_accept 接受客户端连接,返回一个新的 Socket 资源用于与客户端通信。可以使用 socket_read 读取客户端发送的数据,socket_write 向客户端发送响应。

$clientSocket = socket_accept($socket);
$data = socket_read($clientSocket, 1024);
socket_write($clientSocket, "Hello Client!");

关闭 Socket 连接

通信完成后,使用 socket_close 关闭客户端和服务器的 Socket 连接,释放资源。

socket_close($clientSocket);
socket_close($socket);

创建 Socket 客户端

客户端通过 socket_create 创建 Socket 后,使用 socket_connect 连接到服务器。发送数据使用 socket_write,接收数据使用 socket_read

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, '127.0.0.1', 8080);
socket_write($socket, "Hello Server!");
$response = socket_read($socket, 1024);
socket_close($socket);

错误处理

检查每个 Socket 操作的返回值,使用 socket_last_errorsocket_strerror 获取错误信息,确保通信的稳定性。

if (socket_last_error()) {
    echo "Error: " . socket_strerror(socket_last_error());
}

完整示例代码

服务器端代码:

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, '0.0.0.0', 8080);
socket_listen($socket);
$clientSocket = socket_accept($socket);
$data = socket_read($clientSocket, 1024);
echo "Received: $data\n";
socket_write($clientSocket, "Hello Client!");
socket_close($clientSocket);
socket_close($socket);

客户端代码:

php 实现socket通信

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, '127.0.0.1', 8080);
socket_write($socket, "Hello Server!");
$response = socket_read($socket, 1024);
echo "Response: $response\n";
socket_close($socket);

注意事项

  • 确保服务器和客户端的协议、IP 地址和端口一致。
  • 处理大容量数据时,循环读取和写入以避免数据截断。
  • 考虑使用多线程或非阻塞模式处理多个客户端连接。

通过以上步骤,可以实现基本的 Socket 通信功能,适用于简单的客户端-服务器交互场景。

标签: 通信php
分享给朋友:

相关文章

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_I…

php 实现单点登录

php 实现单点登录

PHP 实现单点登录的方法 单点登录(SSO)允许用户通过一次登录访问多个相互信任的系统。以下是基于 PHP 的实现方案: 基于共享 Session 的方案 在同一个主域名下的子域名间可以通过共享…

php 实现mvc

php 实现mvc

PHP 实现 MVC 架构的方法 MVC(Model-View-Controller)是一种常见的软件设计模式,用于分离业务逻辑、用户界面和用户输入。以下是 PHP 实现 MVC 架构的关键步骤:…

php 购物车实现session

php 购物车实现session

PHP 购物车实现(基于 Session) 在 PHP 中,使用 Session 实现购物车功能是一种常见方法。Session 可以跨页面存储用户数据,适合临时保存购物车信息。 初始化 Sessio…

php无法实现

php无法实现

PHP 是一种功能强大的服务器端脚本语言,能够实现多种功能,包括动态网页开发、数据库交互、文件操作等。如果遇到“无法实现”的问题,通常是由于以下原因之一: 环境配置问题 确保 PHP 环境正确安装和…