将字节数组从PHP发送到Java Socket

时间:2011-11-14 22:15:17

标签: java php sockets

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

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

$socket = fsockopen("127.0.0.1", 5477) or die("Error creating socket");

$output = pack("i3", 2, 1, 1); 
fwrite($socket, $output, 3);

在java端,当我尝试调用in.readInt()时,我得到一个java.io.EOFException(其中inDataInputStream

if (in.available() != 0)
{
    //read the data
    int len = in.readInt(); //length of the buffer
}

那么问题是什么? /我是以正确的方式解决这个问题还是有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

您只向套接字写入3个字节,但readInt() 始终读取4个字节以构造java int值。

所以,你自然会在第3个字节后获得EOFException