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);