2013-01-13 56 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 –