I have wrote a generic program that can accept data from DataInputStream. But recently I was trying to receive data from UDP using DatagramSocket. I have searched a lot, but I could nor fina a way to manipulate the incoming data from DatagramSocket to DataInputStream. Logically, since both are incoming data, there should be a way to integrate these two objects right? Am I wrong?
After getting answered from EJP I am right now using like this am i right?
byte[] buffer = new byte[2048];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(packet.getData(), packet.getOffset(), packet.getLength()));
While(true){
dsocket.receive(packet);
dis = new DataInputStream(new ByteArrayInputStream(packet.getData(), packet.getOffset(), packet.getLength()));
reader = new MAVLinkReader(dis,MAVLinkMessage.MAVPROT_PACKET_START_V10);
mesg = reader.getNextMessage();
while (mesg != null) {...do stuff...}
}
Now what i feel is that since the reader is initialized to new dis each time the previously remaining bytes in dis becomes vanished.