找回密码
 注册账号

QQ登录

只需一步,快速开始

《泰拉瑞亚下载-1.4.2.3版》 泰拉瑞亚服务器 - MOD模组下载

入驻泰拉战网 新手指引 - 升级 - 师徒

泰拉瑞亚合成表 泰拉卡牌 - 泰拉江湖 - 泰拉刺客

联系泰拉开发组👈进入 积分市场 - 房产交易 - 水晶获取

查看: 2126|回复: 0

[原生PHP] PHP 通过Socket收发16进制数据

[复制链接]

500

主题

18

回帖

5

广播

论坛版主

积分
258
泰拉
22
水晶
1
铜钥匙
0
银钥匙
0
金钥匙
0

【江湖新秀】【宝剑回鞘】【泰拉达人】【奥运选手】

发表于 2020-5-9 19:11:21 | 显示全部楼层 |阅读模式

最近在php下做关于Socket通讯的相关内容,发现网络上好多人在了解如何进行16进制收发,研究了下,代码如下,欢迎拍砖。

  1. <?php
  2.         $sendStr = '30 32 30 34 03 30 33';  // 16进制数据

  3.         $sendStrArray = str_split(str_replace(' ', '', $sendStr), 2);  // 将16进制数据转换成两个一组的数组

  4.         $socket = socket_create(AF_INET, SOCK_STREAM, getprotobyname("tcp"));  // 创建Socket

  5.         if (socket_connect($socket, "192.168.1.100", 8080)) {  //连接
  6.             for ($j = 0; $j < count($sendStrArray); $j++) {
  7.                 socket_write($socket, chr(hexdec($sendStrArray[$j])));  // 逐组数据发送
  8.             }

  9.             $receiveStr = "";
  10.             $receiveStr = socket_read($socket, 1024, PHP_BINARY_READ);  // 采用2进制方式接收数据
  11.             $receiveStrHex = bin2hex($receiveStr);  // 将2进制数据转换成16进制

  12.             echo "client:" . $receiveStrHex;
  13.         }
  14.         socket_close($socket);  // 关闭Socket
  15.         ?>
复制代码
[发帖际遇]: 君山 乐于助人,奖励 13 泰拉. 幸运榜 / 衰神榜
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|友链申请|Archiver|手机版|小黑屋|游芯沙盒 ( 陕ICP备11006283号-1 )

GMT+8, 2024-5-20 01:36 , Processed in 0.107654 second(s), 37 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表