socket_read只返回第一个字符

时间:2015-03-26 22:28:02

标签: php mysql sockets network-programming server

我看到类似的问题已被多次询问,但我认为没有任何答案适合我。我正在尝试使用socket_read命令使用php监听我的localhost上的端口并将消息写入服务器。代码工作正常,但我只能读写第一个字符。假设客户端发送“hello”socket_read只读取“h”

$result = socket_read ($client, 1024);

echo "Reply From Server  :".$result ."\n";

它几乎看起来像php运行得如此之快以至于只要套接字读取接收到第一个字符,程序就会继续运行下一行。我需要socket_read等到消息结束或消息中看到某些字符,如空格或句号或美元符号或其他任何内容。

到目前为止,我试过了;

  1. 在循环中使用套接字读取,因此每次接收到一个字符时,我都可以放入一个数组并最终生成单词“hello”。不工作。当我使用循环时,我会在几秒钟内收到数百个空字符。

  2. 阅读PHP手册我试图在标题中使用PHP_NORMAL_READ。当使用此选项时,socket_read应该继续,直到消息包含\n\r,但它不适用于我的应用程序。

  3. 我看到建议使用node.js或websocket,但它们不会工作,这也不是聊天平台。我需要的是在我的网站上运行一个php脚本,当客户端发送信息时,我希望php脚本能够在sql server中记录该消息。

  4. 注意:我测试了远程和本地主机连接。没有区别。将消息记录到服务器也没有问题。唯一的问题是使用socket_read接收单个字符。

0 个答案:

没有答案