massimo
14-11-2004, 09:25
Hallo,
ich schreibe gerade an einem simplen HTTPD Server. Es werden Threads verwendet, um die Clients mit Webseiten zu versorgen. Diese Threads lesen den Request in einen BufferedReader mittels readLine() ein. Wenn ich nun auf einer Webseite eine Form habe, die die Daten mittels POST überträgt, muss ich ja noch den Request-Body für den Querystring auslesen, leider bleibt da aber das readLine() hängen - generell immer vor der letzten Zeile eines Requests, d.h. auch wenn kein POST vorliegt, die letzte Zeile bekomm ich erst dann, wenn der Client(<- Browser, mit Mozilla und Konqueror probiert) die Verbindung abbricht. Nur dann kann klarerweise der Server nicht mehr antworten.
Das readLine() steht in einer Schleife:
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(client_socket.getInputStream));
while((temp_string = bufferedreader.readLine()) != null){
[...]
}
Jemand eine Idee, wie ich den Request "besser" einlese? Non-blocking?
ich schreibe gerade an einem simplen HTTPD Server. Es werden Threads verwendet, um die Clients mit Webseiten zu versorgen. Diese Threads lesen den Request in einen BufferedReader mittels readLine() ein. Wenn ich nun auf einer Webseite eine Form habe, die die Daten mittels POST überträgt, muss ich ja noch den Request-Body für den Querystring auslesen, leider bleibt da aber das readLine() hängen - generell immer vor der letzten Zeile eines Requests, d.h. auch wenn kein POST vorliegt, die letzte Zeile bekomm ich erst dann, wenn der Client(<- Browser, mit Mozilla und Konqueror probiert) die Verbindung abbricht. Nur dann kann klarerweise der Server nicht mehr antworten.
Das readLine() steht in einer Schleife:
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(client_socket.getInputStream));
while((temp_string = bufferedreader.readLine()) != null){
[...]
}
Jemand eine Idee, wie ich den Request "besser" einlese? Non-blocking?