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);
相关推荐
鲸屿19511 分钟前
Ansible之playbook
服务器·网络·ansible
绝世剑仙纪宁1 小时前
TCP 三次握手、四次挥手
网络·网络协议·tcp/ip
索迪迈科技1 小时前
HTTP中Payload的含义解析
网络·网络协议·http
小白学大数据2 小时前
构建企业级Selenium爬虫:基于隧道代理的IP管理架构
爬虫·tcp/ip·selenium
时空潮汐2 小时前
我用神卓 NAT 公网 IP 盒子搭建《我的世界》联机的经历
网络·网络协议·tcp/ip
liulilittle2 小时前
HTTP/3.0:网络通信的技术革新与性能飞跃
网络·网络协议·http·https·quic·流媒体·通信
岑梓铭2 小时前
计算机网络第四章(4)——网络层《ARP协议》
网络·笔记·tcp/ip·计算机网络·考研·408
Linux运维技术栈3 小时前
域名网页加载慢怎么解决:从测速到优化的全链路性能优化实战
运维·网络·nginx·性能优化·cloudflare
北极光SD-WAN组网3 小时前
基于智能组网设备的港口网络安全闭环管控方案设计与实践
网络·安全·web安全
妳人話3 小时前
TCP的三次握手和四次挥手
网络·网络协议·tcp/ip