PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HTTPD Server - Request einlesen



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?

HangLoose
14-11-2004, 10:36
moin




Jemand eine Idee, wie ich den Request "besser" einlese? Non-blocking?


ja, nur vermute ich, das dir die nicht wirklich weiterhilft. ich gehe mal davon aus, das du deinen http server *just for learning* schreibst. wenn dem allerdings nicht so ist, würde ich dir tomcat/jboss/... + servlets vorschlagen.

in der servlet api gibt es ein httpservlet, bei dem du mit request.getParameter("deineForm") auf die forms der website zugreifen kannst. du könntest dir zumindest mal den code des httpservlets anschauen, dann siehst du zumindest, wie sun das löst.


Gruß HL

marius
15-11-2004, 02:52
hi

paste mal bitte mehr code, den inhalt der schleife vorallem.

gruss
marius