我有一个监听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(其中in
是DataInputStream
)
if (in.available() != 0)
{
//read the data
int len = in.readInt(); //length of the buffer
}
那么问题是什么? /我是以正确的方式解决这个问题还是有更好的方法来做到这一点?
答案 0 :(得分:1)
您只向套接字写入3个字节,但readInt()
始终读取4个字节以构造java int
值。
所以,你自然会在第3个字节后获得EOFException
。