2013-01-13 57 views
3
$data = socket_read($this->socket, 5); 

    $counter = strlen($data); 
    for($i = 0; $i < $counter; ++$i) { 
     $char = (int)$data[$i]; 
     echo "\nByte $i: $char\n"; 
    } 

客户端向服务器发送两个字节,甚至当我读取5时,它仍然只接收2.问题是该字节读取为0.它不读取它正确。我如何读取实际的字节/字节数组。从PHP中的套接字流中读取单个字节

在此先感谢!

回答

2

如果客户只派出两个字节,你为什么换成五?尝试使用socket_recv()来获得读取字节的显式返回值。

+0

我不想五种,我只是证明了即使五人放了进去,然后只读过两年。我现在将使用socket_recv进行测试。 –

+0

嗯,没有。你得到两个字节。这是PHP字符串的特点,让你感到困惑。 –

+0

好了,所以我更改为使用socket_recv和可变设置为代码。我将如何读取两个字节的实际值?我很困惑xD –