Archiv verlassen und diese Seite im Standarddesign anzeigen : recv mag google nicht
socket erstellen, verbinden, senden funktioniert ..
nur beim lesen macht das teil nicht was es soll.
bei www.heise.de als ziel funktioniert das einlesen.
bei www.google.de holt er sich die seite und wartet dann.
tmp ist vom Typ QString
der buffer:
char buffer [1024]
while ((read_b = recv( s, buffer, sizeof(buffer)-1,0) )> 0) {
tmp.append( buffer);
write(1, buffer, sizeof(buffer));
}
zuerst dachte ich dass er mitten drin stehen bleibt, aber dem ist nicht so. er wartet imho auf ein dämliches "\n".
oder hat da jemand eine andere idee?
gruesse
ps: mein code sieht zur zeit noch echt übel aus, vielleicht hat ja jemand gerade einen client zur verfügung und kann das mal testen, sonst reiche ich den rest noch nach .
while ((read_b = recv( s, buffer, sizeof(buffer)-1,0) )> 0) {
buffer[ read_b ] = 0;
tmp.append( buffer );
}
arghhhh ......
alles mein fehler ....
rfc 2616, kapitel 14.10 Connection
wenn ich ihm sage, dass er die vebindung schliessen soll, macht er es auch ...
ist das normal? macht das der apache automatisch?
oder kann mir zufällig jemand das kapitel im rfc sagen wo das explizit steht?
gruesse
arghhhh ......
alles mein fehler ....
rfc 2616, kapitel 14.10 Connection
wenn ich ihm sage, dass er die vebindung schliessen soll, macht er es auch ...
ist das normal? macht das der apache automatisch?
oder kann mir zufällig jemand das kapitel im rfc sagen wo das explizit steht?
gruesse
Redest du von Connection: close bzw. Connection: keep (oder wie das noch hieß)? Du musst wissen das HTTP 1.0 immer close ist, nur 1.1 kann die verbindung offen halten (AFAIK). Also HTTP1.1 im header senden, aber da musst du auch chunked body encoding oder wie das heißt beachten.
Redest du von Connection: close bzw. Connection: keep (oder wie das noch hieß)? Du musst wissen das HTTP 1.0 immer close ist, nur 1.1 kann die verbindung offen halten (AFAIK). Also HTTP1.1 im header senden, aber da musst du auch chunked body encoding oder wie das heißt beachten.
jup,
ich hatte nur mit den imho notwendigsten angaben angefangen ...
GET / HTTP1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n
oder halt keep-alive, aber ich denke dass man ihm dann auch sagen sollte wie lange: Keep_Alive: xxx
natürlich zuerst ohne den wagenrücklauf ;-). das mit dem transfer-encoding hatte ich so verstanden, dass ich das nicht zwingend angeben muss. die antworten die ich bislang erhalte reichen mir eigentlich aus. die links lassen sich extrahieren. jetzt muss ich noch den header auswerten ... und das ganze zusammenstricken ;-). feinheiten kann man dann immer noch ausarbeiten.
was mich allerdings stört, ist dass ich nicht herausfinde, wieso die signals von QSocket nicht abgeschickt werden (siehe anderer thread). Das nervt schon fast ein wenig ;-).
gruesse
reinhard
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.