# HttpUrlConnection + Client/Server Problem



## Mewel (18. Nov 2005)

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.



```
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
```


----------



## Ilja (18. Nov 2005)

lies dir bitte ein tut/faq zur Client-Server-komunikation durch...

http://www.java-forum.org/de/viewtopic.php?t=6033


sorry, ...es sieht so aus, als ob du versuchst hast mit einer Mischung aus methoden von C und QBasic was auf die Beine zu stellen


----------



## Mewel (18. Nov 2005)

Es ist keine Mischung aus C/Basic, es geht einfach darum einen Http-tunnel aufzubauen, bevor ich das hard mit Sockets reincode kann man das auch über die HttpUrlConnection machen. Ausserdem brauch ich non-blocking ServerSockets, normale reichen nicht.

Wie gesagt, das Program funktionert! Das Problem ist nur dieser unerklärliche Fehler der bei zu grossen Datenmengen auftritt.

ps. ich glaube ich habe die Client-Server Kommunikation schon ganz gut verstanden


----------

