我有这样的小包
class Packet {
private $DATASize;
private $signature;
private $version;
private $HSIZE;
private $SessionIDUser1;
private $SessionIDUser2;
}
我正在使用UDP协议。
由于此类中没有方法,因此您可以使用编码实例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。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句