php客户端与C语言服务器结构体如何通讯(UDP)?

0neSe7en 2012-08-27 12:19:23
如题。
包头的一部分
#pragma pack(4)

typedef struct _HEADER
{
uint8_t Magic[4];
uint8_t Version;
uint8_t Reserved;
uint8_t Command;
uint8_t ClientOS;
uint32_t Status;
uint32_t Length;
} HEADER, *PHEADER;



php部分,应该如何解包?
...全文
201 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlexidong 2012-08-27
  • 打赏
  • 举报
回复
自己测试下吧 没有问题就用, 有问题就考虑下这方面
0neSe7en 2012-08-27
  • 打赏
  • 举报
回复
用考虑大小端的问题吗?
littlexidong 2012-08-27
  • 打赏
  • 举报
回复
还有这样一个函数,见识了。。
再注意下大小端问题就差不多了
xuzuning 2012-08-27
  • 打赏
  • 举报
回复
首先,按照posix标准
1字节 uint8_t
2字节 uint16_t
4字节 uint32_t

其次 uint 是无符号整型数(unsigned int)

于是可用 unpack 解包
设 $str 为接收到的串
$d = unpack('A4Magic/CVersion/CCommand/CClientOS/lStatus/lLength', $str);
$d['Magic'] = unpack('C*', $d['Magic']);

print_r($d);

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧