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);
相关推荐
桌面运维家3 小时前
VLAN配置进阶:抑制广播风暴,提升网络效率
开发语言·网络·php
安静轨迹3 小时前
TLS_SSL 警报码完整手册
网络·网络协议·ssl
minji...4 小时前
Linux 进程信号(二)信号的保存,sigset_t,sigprocmask,sigpending
linux·运维·服务器·网络·数据结构·c++·算法
木木em哈哈7 小时前
记一次在线编辑器的探索
linux·服务器·网络
一个有温度的技术博主7 小时前
网安实验系列一:Burp Suite探测敏感信息路径
网络·安全
我要成为嵌入式大佬7 小时前
正点原子MP157--问题详解--二(NFS挂载根文件系统双网卡设置)
linux·服务器·网络
lifejump8 小时前
双冗余链路实现(2/2期)
网络
F1FJJ9 小时前
Shield CLI PostgreSQL 插件现已上架 VS Code 扩展市场
网络·vscode·网络协议·postgresql·开源软件
123过去9 小时前
responder使用教程
linux·网络·测试工具·安全·哈希算法
不知名。。。。。。。。9 小时前
数据链路层
linux·网络