技术&日志

PHP建立TCP并发送byte

功能: 建立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)));
    }
}

相关资料

如何调用服务端的 Socket