功能: 建立socket(TCP)长连接, 并发送 16进制转ASCII
$host = 'IP地址'; // 如: 192.168.1.10
$port = '端口'; //如: 8000
$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP) or die('Could Not Connect To Socket');
socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>1,"usec"=>0));
$connect = socket_connect($socket, $host, $port);
$str0 = '01 00 00 16 00 00 00 9c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 /r /n';
socket_write ( $socket, $byte_str0);
$out = socket_read($socket);
socket_close($socket);
function tobyte($str)
{
$arr = str_split(str_ireplace(' ', '', $str), 2);//去掉空格后,2 字符一段切分成数组
$byte_arr = array();
foreach ($arr as $h) {
$byte_arr[] = chr(hexdec($h));
}
$byte_str = implode('', $byte_arr);
var_dump($byte_str);
return $byte_str;
}
function bytetostr($str)
{
$arr = str_split($str, 1);
foreach ($arr as $h) {
var_dump(dechex(ord($h)));
}
}