如何使用PHP udp 发送16进制数据

最近遇到一个项目需要用到udp发送16进制数据到某IP:端口 udp用起来了 但是如何发送16进制数据呢?尝试好久无发解决,希望指点12.

这里贴出我在网上学来的代码,通过这种方式发送过去的一直是字符串并不是16进制。

谢谢了

        $ip = '127.0.0.1';
        $port = '8888';
        $str_hex = '020304055A00006455230101110040F38590C77A501141';
        $handle = stream_socket_client('udp://'.$ip.':'.$port,$errno,$errstr);
        if (!$handle) {
            die('ERROR:'.$errno. '- '.$errstr.'\n');
        }
        fwrite($handle,$str_hex.'\n');
        fclose($handle);

看了下,你那个是16进制字符串,而不是十六进制字节

https://www.cnblogs.com/lxcsmallcity/p/3259471.html
这个应该是你要的

发送的时候需要转成bytehex格式,你的那个方法只是转成hexstr,用这个方法可以转成串口识别的数据pack('H*',$msg),接收的地方用hex2bin()就能把串口返回的hex转成直观的字符串