php socket通信几个问题及解决方案

Q:gb/t 1988编码

gb/t 1988编码其实就是ascii编码,转成16进制的形式, 相关的几个php方法 ord dechex

Q:大小端字节序

大端就是将高位字节放到内存的低地址端,低位字节放到高地址端。网络传输中(比如TCP/IP)低地址端(高位字节)放在流的开始,对于2个字节的字符串(AB),传输顺序为:A(0-7bit)、B(8-15bit)。
那么小端字节序自然和大端相反。

Q:socket客户端连接并发送数据(swoole)

$client = new swoole_client(SWOOLE_SOCK_TCP);
if (!$client->connect(127.0.0.1, 9005, -1))
{
    exit("connect failed. Error: {$client->errCode}\n");
}
$client->send('hello');
echo $client->recv();
$client->close();

Q: bcc校验法

 BCC(异或校验)法,校验范围从命令单元的第一个字节开始,同后一字节异或,直到校验码前一字节为止,php异或运算符为 ^

Q:socket以二进制流的方式发送数据

将数据用pack方法转化后,将转化后的pack用字符串连接的形式连接起来,$client->send();直接发送连接后的字符串即可,pack方法详解  
https://segmentfault.com/a/1190000008305573#articleHeader4