当前位置:首页 > PHP

php 实现 tcp

2026-02-14 18:12:47PHP

PHP 实现 TCP 通信

PHP 可以通过 socket 扩展实现 TCP 通信,包括创建 TCP 服务器和客户端。以下是具体实现方法。

创建 TCP 服务器

  1. 创建 Socket 并绑定端口

    $host = '0.0.0.0';
    $port = 8080;
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    socket_bind($socket, $host, $port);
    socket_listen($socket);
  2. 接受客户端连接

    $client = socket_accept($socket);
    $message = "Welcome to TCP Server!\n";
    socket_write($client, $message, strlen($message));
  3. 处理客户端数据

    while (true) {
        $data = socket_read($client, 1024);
        if (trim($data) === 'exit') {
            break;
        }
        echo "Received: " . $data;
        socket_write($client, "Server: " . $data, strlen($data) + 8);
    }
  4. 关闭连接

    socket_close($client);
    socket_close($socket);

创建 TCP 客户端

  1. 连接服务器

    $host = '127.0.0.1';
    $port = 8080;
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    socket_connect($socket, $host, $port);
  2. 发送和接收数据

    $message = "Hello Server!\n";
    socket_write($socket, $message, strlen($message));
    $response = socket_read($socket, 1024);
    echo "Server Response: " . $response;
  3. 关闭连接

    socket_close($socket);

注意事项

  • 确保 PHP 已启用 socket 扩展(检查 php.iniextension=sockets 是否取消注释)。
  • 服务器和客户端需在同一网络或配置正确的 IP 和端口。
  • 多客户端处理需结合 socket_select 或多进程/多线程实现。

示例代码整合

TCP 服务器完整示例

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

$client = socket_accept($socket);
socket_write($client, "Connected.\n", 11);

while (true) {
    $data = socket_read($client, 1024);
    if (trim($data) === 'exit') break;
    echo "Client: " . $data;
    socket_write($client, "Server: " . $data, strlen($data) + 8);
}

socket_close($client);
socket_close($socket);

TCP 客户端完整示例

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, '127.0.0.1', 8080);

$response = socket_read($socket, 1024);
echo $response;

socket_write($socket, "Hello Server!\n", 14);
$response = socket_read($socket, 1024);
echo $response;

socket_write($socket, "exit\n", 5);
socket_close($socket);

通过以上方法,可以实现基本的 TCP 通信功能。如需高并发或更复杂场景,建议结合事件循环库(如 libevent)或使用 Swoole 等高性能框架。

php 实现 tcp

标签: phptcp
分享给朋友:

相关文章

php实现文件上传

php实现文件上传

文件上传的基本实现 在PHP中实现文件上传需要使用$_FILES超全局数组处理上传的文件数据。表单必须设置enctype="multipart/form-data"属性,并采用POST方法提交。 创…

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开:…

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE o…

php实现队列

php实现队列

PHP实现队列的方法 队列是一种先进先出(FIFO)的数据结构,PHP可以通过多种方式实现队列功能。 使用数组模拟队列 PHP数组可以模拟队列的基本操作,通过array_push和array_sh…

php 实现登录

php 实现登录

PHP 登录功能实现 使用 PHP 实现登录功能通常需要结合数据库验证和会话管理。以下是一个基本的登录实现流程: 数据库准备 创建用户表存储用户名和密码(建议使用哈希加密): CREATE T…

php队列的实现

php队列的实现

PHP队列的实现方式 PHP中实现队列功能可以通过多种方式,根据需求选择适合的方案: 使用数组实现基础队列 PHP数组本身支持队列操作,利用array_push和array_shift函数: $q…