我怎么能在PHP中打包一个对象?

时间:2013-10-20 13:12:32

标签: php sockets udp pack

如何在php中打包对象并通过udp发送? 我有一个包含6个属性的数据包类:

/** @var 32int  */
    private $headerSize;
    /** @var 32int  */
    private $highSessionID;
    /** @var 32int  */
    private $lowSessionID;
    /** @var array (char)  */
    private $signature;
     /** @var 32int  */
    private $comandID;
     /** @var 32int  */
    private $dataSize;

我尝试了一个简单的客户端 - 服务器应用程序,它通过udp发送一个字符串,但我想发送一个具有不同类型数据的对象

编辑: 我使用了包和序列化功能,它们非常有用,但我还有一个问题:

我在php.net上阅读手册,但我不明白如何打包不同类型的数据。 我试过这个:

$n = ord('a');
 $buf =  pack('IS',200000000,$n);

 $array = unpack('I/S', $buf);
 foreach ($array as $key => $value)
    echo "\$array[$key] = ". $value ."<br>\n"; 

输出:

$array[1] = 97<br> 

为什么200000000不打印?我该如何修复代码?

THX。

1 个答案:

答案 0 :(得分:0)

I found my mistake:

The unpacked 数据存储在关联数组中。要完成此,您必须命名  不同的格式代码并用斜杠/分隔它们。如果存在转发器参数, 那么每个数组键都会有一个给定名称后面的序列号。