php使用sockets实现Modbus TCP串口通信

sockets文档地址:https://www.php.net/manual/zh/book.sockets.php

一:安装sockets拓展

1:windows安装sockets

找到php.ini文件,将下面这行注释即可

复制代码
extension=sockets

2:Linux安装sockets

复制代码
pecl install sockets

找到php.ini文件,增加下面这行即可

复制代码
extension=socket.so

3:docker安装

再docker容器中执行下面这行即可

复制代码
docker-php-ext-install sockets

二:sockets简单实现Modbus TCP信息报送

复制代码
$serverIP = 'XXX.XXX.XXX.XXX';  // Modbus TCP服务器IP
$serverPort = 8000;  // Modbus TCP服务器端口

// 创建TCP连接
$socket = \socket_create(AF_INET, SOCK_STREAM, SOL_TCP);


if ($socket === false) {
    die("socket_create() failed: reason: " . socket_strerror(socket_last_error()));
}
try {
    \socket_connect($socket, $serverIP, $serverPort);
} catch (\Exception $e) {
    die("无法连接到Modbus TCP服务器");
}
//请求报文
$request = 'XXXX';
//将报文转为十六进制字符串
$request = pack('H*', $request);
//发送请求报文
\socket_write($socket, $request);
// 接收响应报文
$response = \socket_read($socket, 2048);
//处理响应报文
$data = unpack('h*', $response);
// 关闭TCP连接
\socket_close($socket);
相关推荐
syseptember5 小时前
Linux网络基础
linux·网络·arm开发
Exquisite.8 小时前
企业高性能web服务器(4)
运维·服务器·前端·网络·mysql
汉堡包0018 小时前
【网安基础】--内网代理转发基本流程(正向与反向代理)
安全·web安全·php
qq_4112624210 小时前
用 ESP32-C3 直接连 Starlink 路由器/热点并完成配网
网络·智能路由器
梁辰兴10 小时前
计算机网络基础:TCP 的拥塞控制
tcp/ip·计算机网络·php·tcp·拥塞控制·计算机网络基础·梁辰兴
LucDelton11 小时前
Java 读取无限量文件读取的思路
java·运维·网络
Wasim40412 小时前
【渗透测试】SQL注入
网络·数据库·sql
We....12 小时前
鸿蒙与Java跨平台Socket通信实战
java·服务器·tcp/ip·arkts·鸿蒙
..过云雨12 小时前
五种IO模型与非阻塞IO
网络·网络协议·tcp/ip
源远流长jerry13 小时前
dpdk之kni处理dns案例
linux·网络·网络协议·ubuntu·ip