PHP:套接字,socket_read()只返回第一个字符

时间:2010-11-14 16:27:53

标签: php sockets network-programming

我是套接字编程的新手,我刚刚开始使用多用户服务器脚本。如果我的回答是

,那么读取套接字会出现问题

“A,某事或其他”

socket_read只给我“A”

知道为什么会这样吗?

  if (false === ($input = socket_read($clients[$i], 2048, PHP_BINARY_READ))) {

来源:http://pastebin.com/dEvYLUfV

1 个答案:

答案 0 :(得分:0)

如果我没弄错的话,socket_read只会读取当前可用的数据,也许您的PHP运行速度比服务器套接字快(并且在数据可用之前尝试读取数据)。

您应该做的是在邮件中添加某种标题,表示预期邮件的长度。然后,你保持“socket_read”直到你读了那么多字节。