PHP实现连接设备、通讯和发送命令的方法,php命令
本文实例讲述了PHP实现连接设备、通讯和发送命令的方法。分享给大家供大家参考。具体如下:
开发的BS架构的软件(PHP),需要跟设备进行通讯,在此记录一下,欢迎各位指正:
1. 采用php socket技术使用TCP/IP连接设备
参数$service_port 连接端口
参数$address 发送IP地址
参数$in 发送命令
function Send_socket_connect($service_port, $address, $in) { //创建 TCP/IP socket$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("could not create socket!"); //设置超时时间 $timeout = 2; $time = time(); //设置非阻塞模式 @socket_set_nonblock($socket); //超时判断 while (!@socket_connect($socket, $address, $service_port)) { $err = socket_last_error($socket); // 连接成功,跳出循环 if ($err === 10056) { break; } //连接失败,判断超时时间,停止 if ((time() - $time) >= $timeout) { socket_close($socket); print('网络异常,请检查网络连接!!'); exit(); } // 刷新频率(250毫秒) usleep(250000); } //设置阻塞模式 @socket_set_block($socket); //发送命令到设备 socket_write($socket, $in, strlen($in)); //关闭连接 socket_close($socket); }
Send_socker_xdcoder $buffer为返回值
function Send_socket_xdcoder($service_port, $address, $in) { //创建 TCP/IP socket $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("could not create socket!"); //设置超时时间 $timeout = 2; $time = time(); //设置非阻塞模式 @socket_set_nonblock($socket); //超时判断 while (!@socket_connect($socket, $address, $service_port)) { $err = socket_last_error($socket); // 连接成功 if ($err === 10056) { break; } //连接失败,判断超时时间,停止 if ((time() - $time) >= $timeout) { socket_close($socket); echo "<script>alert('网络异常,请检查网络连接!!');</script>"; exit(); } // 刷新频率(250毫秒) usleep(250000); } //设置阻塞模式 @socket_set_block($socket); //发送命令到设备 socket_write($socket, $in, strlen($in)); //接收设备命令返回数据 $buffer = socket_read($socket, 1024, PHP_NORMAL_READ); //关闭连接 socket_close($socket); //输出返回值 return $buffer; }
2. 采用php socket技术使用UDP协议连接设备,实现通讯和发送命令
参数$service_port 连接端口
参数$address 发送IP地址
参数$in 发送命令
function Send_socket_connect_udp($service_port, $address, $in) { //采用php socket技术使用UDP协议连接设备 $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); @socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 2, "usec" => 0)); //发送命令 @socket_sendto($socket, $in, strlen($in), 0, $address, $service_port); @socket_recvfrom($socket, $buffer, 1024, MSG_WAITALL, $address, $service_port); //关闭连接 if (empty($buffer)) { echo "<script>alert('网络异常,请检查网络连接!!');</script>"; } }
Send_socket_xdcoder_udp $buffer 为返回值
function Send_socket_xdcoder_udp($service_port, $address, $in) { //采用php socket技术使用UDP协议连接设备 $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); @socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 2, "usec" => 0)); //发送命令 @socket_sendto($socket, $in, strlen($in), 0, $address, $service_port); @socket_recvfrom($socket, $buffer, 1024, MSG_WAITALL, $address, $service_port); //关闭连接 socket_close($socket); if (!empty($buffer)) { return $buffer; } else { echo "<script>alert('网络异常,请检查网络连接!!');</script>"; } }
3. 采用RS232串口技术连接设备,实现通讯和发送命令
参数$com 串口号
参数$baudratr 波特率
参数$in 发送命令
function rs232_connect($com, $baudrate, $in) { @set_time_limit(10); //使用 'windows下设置窜口参数'; exec("mode " . $com . " BAUD=" . $baudrate . " PARITY=n DATA=8 STOP=1 odsr=off"); // "打开端口串口$com"; $f = @fopen($com, 'w+'); //判断串口是否正常打开 if (!$f) { //echo "<script>alert('Error when open $com!!');</script>"; die("Error when open $com"); } //向串口发送数据; fwrite($f, $in); //关闭端口 fclose($f); //串口操作结束 }
还有一个关于命令16进制转换的:
function hexToStr($hex) { $string = ""; for ($i = 0; $i < strlen($hex) - 1; $i+=3) { $string.=chr(hexdec($hex[$i] . $hex[$i + 1])); } return $string; }
希望本文所述对大家的php程序设计有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft