我有这样的包
class Packet {
private $DATASize;
private $signature;
private $version;
private $HSIZE;
private $SessionIDUser1;
private $SessionIDUser2;
}
我正在使用UDP协议。
答案 0 :(得分:0)
由于此类中没有方法,您可以使用json_encode
对实例进行编码,并将其作为字符串发送。在客户端只需解码和克隆。当课程有方法时,也可以做到更复杂。
示例:
//server
$p = new Packet;
socket_sendto($sock, json_encode($p), strlen($p), 0, $ip, $port);
//client
socket_recvfrom($sock, $buf, $size, 0, $ip, $port);
$p = clone json_decode($bof); //class without methods
$p = new Packet;
$p->setAs(json_decode($bof) ); //class with methods: implement this method too.
修改强>
现在我看到你的字段是private
,所以你需要json编码的实现方法。请参阅https://stackoverflow.com/a/7005915/2075420和https://stackoverflow.com/a/9942303/2075420。