将通过 php 套接字检索到的字节转换为整数


Converting bytes retrieved over a php socket to a integer

我正在使用netty API创建一个Java服务器,如果客户端程序向服务器发送任何数字,则发送一个数字,例如5。它是一个包含 4 个字节的整数。我认为这应该与将整数写入输出流一样。所以我想现在通过 php 接收整数。但是如果我调用socket_read它不会输出任何有用的东西,因为它不会将 4 个字节转换为整数。它只是将其用作文本。

如果我发送一个字符,它可以工作,所以我需要一种 php 方法来转换它。

或者最好将所有内容转换为文本客户端,因此所有内容都是基于文本的。我想也许我必须坚持基于文本或二进制输出。

编辑:与此相关的另一个问题是,假设我在java中有4个字节。如何构建整数?我必须连接这 4 个字节吗?

例:

字节 1:00000000

字节 2: 00010000

字节 3:00000101

字节 4:00000001

结果:00000000

00010000 00000101 00000001

这是正确的吗?

您可能想要使用解包功能。 像这样:

$data = socket_read($sock,4);
$x = unpack("N",$data);