Java套接字程序一次无法读取大量数据

时间:2009-04-24 03:55:30

标签: java sockets

我使用read()write()编写了套接字程序。 每当我想使用write()发送大数据时。我无法一次收到数据。意味着我的数据分为两部分,那么如何发送大量数据呢?或者一次读取数据?

此外,我无法知道这是write()还是read()

的问题

由于 BAPI

1 个答案:

答案 0 :(得分:2)

read()只保证读取1个字节,超过这个奖励。

处理此问题的常用方法是使用DataOutputStream和DataInputStream发送所需“块”的大小。

public static void write(DataOutput out, byte[] bytes) throws IOException {
    out.writeInt(bytes.length);
    out.write(bytes);
}

public static byte[] read(DataInput in) throws IOException {
    int len = in.readInt();
    byte[] bytes = new byte[len];
    in.readFully(bytes);
    return bytes;
}