这是C代码。
#pragma pack(push,1)
typedef struct _DATA_PKT_D1
{
char length[2];
char command[2];
char src[64];
char lordId;
char user_id[20];
int level;
char isFine;
char company_code;
}DATA_PKT_D1;
#pragma pack(pop)
DATA_PKT_D1 *pkt = malloc(sizeof(DATA_PKT_D1);
//send pkt through TCP socket.
数据包是95byte。
我知道php也有tcp socket功能。
但是,有可能在PHP中使数据包完全相同吗? (我的意思是95字节)
并通过TCP发送数据?
我怀疑php有二进制级结构功能......
任何提示plz~
答案 0 :(得分:3)
是的,用PHP构建二进制数据是完全可能的,虽然有点,不,很多,不如C更优雅。你需要pack / unpack函数,让你从php变量编写二进制缓冲区。见http://php.net/manual/en/function.pack.php
我过去曾为二进制协议(甚至是加密的)实现了UDP服务器和客户端,它很难看,但它很有效。你要特别注意的是字节序。