【发布时间】:2013-04-02 07:11:25
【问题描述】:
$input = socket_read($clients[$i]['socket'],2048);
$lent = strlen($input);
echo "\n\n$lent\n";
echo "\nDATA: ".$input."\n";
我实际要读取的数据长度>512。
有人可以帮帮我吗?
【问题讨论】:
-
你怎么知道长度正好是2048字节?我自己不使用这种方法,但我知道如果您使用可变字节长度,您首先必须读取前 4 个(我相信)字节才能获得完整的数据包长度。
-
我的数据的长度不是固定的,当我检查我的记录长度时它已经是 1361,因为我使用了 strlen 函数,但是当我使用时:socket_recv($clients[$i] ['socket'], $buff, 2048, MSG_WAITALL);我可以接收到我发送的所有数据,问题是我的socket_write函数,一旦我使用socket_recv它会提示错误..感谢回复..@j0k
-
好的,所以您知道字节长度并使用 socket_read() 函数读取所有字节。但真正的问题是什么?是不是出错了?你没有得到任何输出或其他东西吗:)?
-
我有一个输出但不完整,这真的是我的问题..数据被切割不完整..谢谢奔驰..
-
啊,也许是来自多个套接字/连接的总字节数。如果您尝试使用 socket_read 函数创建一个循环会怎样?