PHP 通过 Socket 收发十六进制数据的实现代码
以下是对
PHP 中通过 Socket 收发十六进制数据的实现代码进行了分析介绍。需要的朋友可
以过来参考下
最近在
php 下做关于 Socket 通讯的相关内容,发现网络上好多人在了解如何进行 16 进制收
发,研究了下,代码如下,欢迎拍砖。
代码如下
:
<?php
$sendStr
= '30 32 30 34 03 30 33';
// 16 进制数据
$sendStrArray
=
str_split
(
str_replace
(' ', '',
$sendStr
), 2);
// 将 16 进制数据转换成两个一组
的数组
$socket
= socket_create(AF_INET, SOCK_STREAM,
getprotobyname
("tcp"));
// 创建
Socket
if
(socket_connect(
$socket
, "192.168.1.100", 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
?>