R
R
Hi All,
I have a simple client - server application (using sockets).
80% responses of server are plain text messages,
20% are mixed: they are text messages with binary attachments.
The structure is very simple. If message is plain text the last line
contains "END OF TRANSMISSION".
If message has attachment (only 1 possible) it contains: BINATY
ATTACHMENT: {SIZE IN BYTES}
I'm reading messages with BufferedReader.
BufferedReader can not read bytes. It has read() method but it reads
ints - futher more
it reads int in big-endian order (the transmission is little-endian).
I pass socket.getInputStream() into constructor of my reading thread:
public InputThread(InputStream in) {
this.raw = in;
this.in = new BufferedReader(new InputStreamReader(in));
}
the beggining of the message is read with the BufferedReader,
then (if attachment is present) I use the raw object (InputStream),
it has read(byte[] buffer) method but when I use it it returns -1.
System.out.println(raw.read(bytes));
Can streams be mixed? E.g. I read some text with BufferedReader and
then I'll read some bytes
with orginal InputStream?
I have a simple client - server application (using sockets).
80% responses of server are plain text messages,
20% are mixed: they are text messages with binary attachments.
The structure is very simple. If message is plain text the last line
contains "END OF TRANSMISSION".
If message has attachment (only 1 possible) it contains: BINATY
ATTACHMENT: {SIZE IN BYTES}
I'm reading messages with BufferedReader.
BufferedReader can not read bytes. It has read() method but it reads
ints - futher more
it reads int in big-endian order (the transmission is little-endian).
I pass socket.getInputStream() into constructor of my reading thread:
public InputThread(InputStream in) {
this.raw = in;
this.in = new BufferedReader(new InputStreamReader(in));
}
the beggining of the message is read with the BufferedReader,
then (if attachment is present) I use the raw object (InputStream),
it has read(byte[] buffer) method but when I use it it returns -1.
System.out.println(raw.read(bytes));
Can streams be mixed? E.g. I read some text with BufferedReader and
then I'll read some bytes
with orginal InputStream?