M
Mewel
Gast
Hi,
ich habe eine Client/Server-Applikation welche über die HttpUrlConnection kommuniziert.
Der Client stellt eine einmalige Anfrage an den Server (über HttpUrlConnection) und der Server schickt dem Client solange Daten, wie er selber Anliegen hat.
Das funktioniert auch alles soweit. Mein Problem besteht darin, das der Server ab einer bestimmten Menge von Daten einfach nichts mehr überträgt. Die Übertragung selber basiert auf einem SocketChannel.
ich habe eine Client/Server-Applikation welche über die HttpUrlConnection kommuniziert.
Der Client stellt eine einmalige Anfrage an den Server (über HttpUrlConnection) und der Server schickt dem Client solange Daten, wie er selber Anliegen hat.
Das funktioniert auch alles soweit. Mein Problem besteht darin, das der Server ab einer bestimmten Menge von Daten einfach nichts mehr überträgt. Die Übertragung selber basiert auf einem SocketChannel.
Code:
public void send(SocketChannel channel, byte b[]) {
ByteBuffer buf = ByteBuffer.allocateDirect(1200);
buf.put(b);
buf.flip();
int numBytesWritten = channel.write(buf);
if(numBytesWritten == 0) {
System.out.println("outscht");
}
logger.debug(numBytesWriten + " Bytes written to client");
}
[/quote]
Diese send Methode läuft etwa 80-90 mal korrekt durch und liefert mir Daten an meinem Clienten (alles auf dem selben SocketChannel über die selbe HttpUrlConnection). Der ByteBuffer ist auch nach den 80-90 mal korrekt gefüllt und nicht leer, daran liegts also nicht. Es wird keine Exception ausgelösst und der SocketChannel ist laut debugger auch noch korrekt verbunden.
Kann die HttpUrlConnection vielleicht nur max 100kb als response-code empfangen?
Ahso der SocketChannel befindet sich im Non-blocking Mode (kann mir aber nicht vorstellen das es daran liegen soll) und ich nutze Java 1.4.2_6.
Hoffe das mir jemand helfen kann, verzweifel hier fast :/.
mfg Mewel