0
$input = socket_read($clients[$i]['socket'],2048);
$lent = strlen($input);
echo "\n\n$lent\n";
echo "\nDATA: ".$input."\n";
我的實際數據讀取長度大於512。PHP socket_read最多隻能讀取512個字節
有人可以幫我嗎?
$input = socket_read($clients[$i]['socket'],2048);
$lent = strlen($input);
echo "\n\n$lent\n";
echo "\nDATA: ".$input."\n";
我的實際數據讀取長度大於512。PHP socket_read最多隻能讀取512個字節
有人可以幫我嗎?
請看一看這個線程:
Can't read from socket (hangs)
while($resp = socket_read($clients[$i]['socket'], 1000)) {
$str .= $resp;
if (strpos($str, "\n") !== false) break;
}
socket_close($sock);
die("Server said: $str");
這組代碼循環,直到響應爲空。
你怎麼知道長度正好是2048字節?我自己並不使用這種方法,但我知道如果使用可變字節長度,首先必須讀取前4個(我相信)字節以獲得完整的數據包長度。 – Benz
我的數據的長度並不是固定的,當我檢查我的記錄長度時,它已經是1361,因爲我使用了strlen函數,但是當我使用: socket_recv($ clients [$ i] ['socket'], $ buff,2048,MSG_WAITALL); 我可以接收所有我發送的數據,問題是我socket_write功能,這將有一次我socket_recv提示錯誤.. 感謝您的答覆.. @ j0k – epoy
好了,你知道的字節長度,並使用socket_read ()函數讀取所有字節。但是真正的問題是什麼?它出錯了嗎?你沒有得到任何輸出或其他東西:)? – Benz