如何使用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);
php

2个回答

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

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

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

v587_zyf
v587_zyf 能详细说一下吗
12 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐