首页 » 网站建设 » php_binary_read技巧_门禁系统socket通讯编程

php_binary_read技巧_门禁系统socket通讯编程

访客 2024-11-19 0

扫一扫用手机浏览

文章目录 [+]

<?php $sendStr = '01 49 03 01 01 00 4B'; // 16进制数据01 49 03 01 01 00 4B $sendStrArray = str_split(str_replace(' ', '', $sendStr), 2); // 将16进制数据转换成两个一组的数组 $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); // $socket = socket_create(AF_INET, SOCK_STREAM, getprotobyname(\"大众udp\"大众)); // 创建Socket if (socket_connect($socket, \"大众192.168.16.254\"大众, 8080)) { //连接 for ($j = 0; $j < count($sendStrArray); $j++) { socket_write($socket, chr(hexdec($sendStrArray[$j]))); // 逐组数据发送 } $receiveStr = \"大众\"大众; $receiveStr = socket_read($socket, 1024, PHP_BINARY_READ); // 采取2进制办法吸收数据 $receiveStrHex = bin2hex($receiveStr); // 将2进制数据转换成16进制 echo \"大众client:\"大众 . $receiveStrHex; } socket_close($socket); // 关闭Socket ?>

运行文件返回如图所示

以下是两个文件的通讯案例,分别是udp_s.php和udp_c.php分别是做事端和客户端

php_binary_read技巧_门禁系统socket通讯编程

udp_s.php文件

php_binary_read技巧_门禁系统socket通讯编程
(图片来自网络侵删)

<?php error_reporting( E_ALL );set_time_limit( 0 );ob_implicit_flush();$socket = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP );if ( $socket === false ) { echo \"大众socket_create() failed:reason:\公众 . socket_strerror( socket_last_error() ) . \"大众\n\"大众;}$ok = socket_bind( $socket, '127.0.0.1', 8080 );if ( $ok === false ) { echo \"大众socket_bind() failed:reason:\公众 . socket_strerror( socket_last_error( $socket ) );}while ( true ) { $from = \"大众\"大众; $port = 0; socket_recvfrom( $socket, $buf,1024, 0, $from, $port ); echo $buf; usleep( 1000 );}

udp_c.php文件

<?php$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);$msg = \"大众hello\"大众;$len = strlen($msg);socket_sendto($sock, $msg, $len, 0, '127.0.0.1', 8080);socket_close($sock);

运行文件如下,没刷新下udp_test.php文件,cmd打印出一个hello

标签:

相关文章

php队列限制拜访技巧_PHP队列的实现

行列步队的数据元素又称为行列步队元素,在队尾中插入一个元素称为入队,在队头删除一个元素称为出队。详细实现参考代码:代码:&...

网站建设 2024-12-18 阅读0 评论0