DataInputStream - random incorrect data reading...

From: John Thorner (zeroknw_at_yahoo.com)
Date: 11/02/03


Date: Sat, 01 Nov 2003 19:38:18 -0500

Hi,
I am working on a small java client and server program pair which at
client side packetizes data (such as jpeg image file) and appends some
header info for each packetized packet. At the server side, the
packetized data is reassembled back into the original image.

At client side I am using DataOutputStream/BufferedOutputStream:

DataOutputStream data_out = new DataOutputStream(
             new BufferedOutputStream(client_socket.getOutputStream()));
data_out.writeInt(seq_Num); // part
data_out.writeLong(time_stamp); // of
data_out.writeInt(image_size); // header
data_out.writeInt(length); // for each packetized data
data_out.write(data, 0, length); // Packetized Data

On the server side I read back packetized data back sent by client and
later reassemble it back to original image:

DataInputStream data_in = new DataInputStream(
           new BufferedInputStream(connection_socket.getInputStream()));

     for ( ; ; ) {
          seq_num = data_in.readInt();
          time = data_in.readLong();
          size = data_in.readInt();
          dlength = data_in.readInt();
          System.out.println(seq_num + ", " + time + ", " + size + ", "
+ dlength);

             byte[] p_data = new byte[dlength];
             rlen = data_in.read(p_data, 0, dlength);

Here's my problem
=================
When I read data back at the server side I get corrupted data when I
parse byte packetized data, that is data from DataInputStream data_in

Here's the output:

seq_num=1, time=1067733150359, size=65366, dlength=1000
Received Packet No. 1 from Node A . . .
seq_num=2, time=1067733150361, size=65366, dlength=1000
Received Packet No. 2 from Node A . . .
seq_num=3, time=1067733150363, size=65366, dlength=1000
Received Packet No. 3 from Node A . . .
seq_num=2134239293, time=5009899065144553973, size=-2132742293,
dlength=1480003007
Exception in thread "main" java.lang.OutOfMemoryError

Any ideas what causes this error? Any help would be greatly appreciated...

-John



Relevant Pages

  • DataInputStream --- random incorrect parsing...
    ... I am working on a small java client and server program pair which at ... header info for each packetized packet. ... packetized data is reassembled back into the original image. ...
    (comp.lang.java.help)
  • DataInputStream --- random incorrect parsing...
    ... I am working on a small java client and server program pair which at ... header info for each packetized packet. ... packetized data is reassembled back into the original image. ...
    (comp.lang.java)
  • Re: DataInputStream - random incorrect data reading...
    ... > client side packetizes data and appends some ... At the server side, the ... > packetized data is reassembled back into the original image. ...
    (comp.lang.java.programmer)
  • Re: DataInputStream --- random incorrect parsing...
    ... > later reassemble it back to original image: ... > When I read data back at the server side I get corrupted data when I ... > parse byte packetized data, that is data from DataInputStream data_in ... The DataInputStream.read(byte, int, int) method is not guaranteed to ...
    (comp.lang.java)
  • Re: Cant send back null class reference as SOAP Header?
    ... State is maintained on the server (no ... the client actually maintains the key to the state ... If they then retry the request, the flag won't be sent, will it? ... The header is defined as Direction.InOut on every ...
    (microsoft.public.dotnet.framework.webservices)