将字节数组从PHP发送到Java套接字

将字节数组从PHP发送到Java套接字,java,php,sockets,Java,Php,Sockets,我有一个java服务器在监听套接字。我可以在这个java服务器套接字和连接到它的java客户端套接字之间发送和接收数据 现在我想将PHP连接到java服务器(通过java套接字),但似乎无法向java发送字节数组(使用) 在java端,当我尝试调用.readInt()中的时,我得到一个java.io.EOFException(其中中的是数据输入流) 那么问题出在哪里呢我这样做是正确的还是有更好的方法?您只向套接字写入了3个字节,但是readInt()总是读取4个字节来构造javaint值 因此,

我有一个java服务器在监听套接字。我可以在这个java服务器套接字和连接到它的java客户端套接字之间发送和接收数据

现在我想将PHP连接到java服务器(通过java套接字),但似乎无法向java发送字节数组(使用)

在java端,当我尝试调用.readInt()中的
时,我得到一个java.io.EOFException(其中
中的
数据输入流


那么问题出在哪里呢我这样做是正确的还是有更好的方法?

您只向套接字写入了3个字节,但是
readInt()
总是读取4个字节来构造java
int


因此,您自然会在第三个字节后得到
EOFEException

哦,我明白了。所以我应该把它改为:
fwrite($socket,$output,12)
?我需要在java中反转位顺序吗?(就像我现在读到的长度一样,我得到了33554432)@Andrew。Java DataInputStream使用big-endian字节顺序,所以如果您想使用它,必须在PHP端相应地打包数据。
$socket = fsockopen("127.0.0.1", 5477) or die("Error creating socket");

$output = pack("i3", 2, 1, 1); 
fwrite($socket, $output, 3);
if (in.available() != 0)
{
    //read the data
    int len = in.readInt(); //length of the buffer
}