CrackerSW
2019-02-14 19:31
采纳率: 100%
浏览 1.3k
已采纳

如何使用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);
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • blownewbee 2019-02-15 00:06
    已采纳

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

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

    点赞 打赏 评论
  • zhp2020 2019-08-22 16:32

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

    点赞 打赏 评论

相关推荐 更多相似问题