background image

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

        

?>