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