php - PHP:如何从套接字读取N个字节?

标签 php sockets stream

我想打开套接字并读取前6个字节。
$data = stream_socket_recvfrom($stream, 6);
但是,如果客户端发送空字节,函数将仅读取数据的第一部分并停止读取。

{0x51, 0x01, 0x00, 0x11, 0x11, 0x11}

而且我只得到{0x51, 0x01}
在这种情况下,如何读取所有6个字节?

谢谢

最佳答案

抱歉,PHP中没有问题。 C++上的客户端错误地计算消息长度:

send(sock, chars, strlen(chars), 0);

而C++的strlen中断了空字节。

关于php - PHP:如何从套接字读取N个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30875272/

相关文章:

php - 从具有公共(public)变量的多个表中选择不同的列

未安装/加载/启用 PHP 扩展,使用官方 PHP docker 镜像

java - 无法使用 Socket 连接将数据发送到 c 服务器

java - 如果在 Java 中关闭套接字,是否需要关闭流?

flutter - rxDart 没有调用 onError

php - 下一个和上一个分页错误

php - 只能在我的类中生效的自定义错误处理程序?

java - 使用客户端阻塞的套接字进行客户端与服务器通信

java - 套接字上的 JSON - 这是个好主意吗?

node.js - Node.js 和 Express 中的流式 Rest API HTTP 响应