Re: Receiver in Outputstream.read() stops after 2735 bytes
On Mon, 04 Jan 2010 22:14:38 +0100, Bart Friederichs wrote:
Knute Johnson wrote:
On 1/4/2010 12:57 PM, Bart Friederichs wrote:
Hi,
I have written a sender-receiver and the receiver stops receiving any
data after 2735 bytes. The sender seems to be fine, because when
connecting with a telnet session, it sends all the bytes.
I have tried to send the data in 100 byte pieces and flush()
afterwards, to no avail.
Am I missing someting?
Yes, showing us the code :-).
:) Obviously.
This is the sender:
socket.sock.getOutputStream().write(chunk);
socket is my own class, sock inside it is a java.net.Socket, chunk is a
byte[].
This is the receiver:
int bytesleft = length;
int bytesread = 0;
while (bytesleft > 0 && bytesread > -1) {
bytesread = socket.sock.getInputStream().read(theChunk, length -
bytesleft, 1);
bytesleft -= bytesread;
}
theChunk is a byte[] of size 'length'
Since you don't, apparently, send the receiver any indication of how many
bytes you intend to send it, how does 'length' get set to a sensible
value?
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |