while (httpLength == MAX_BUF)
{
httpLength= recv(sock, (char*)&httpBuffer, MAX_BUF, 0);
if (httpLength>0)
{
strncat(httpResponse, httpBuffer, httpLength);
}
}
printf("%s",httpResponse);
Sleep(20000);
return 0;
}
30.11.2010, 16:22
blackberry
Machs mal so: char httpHost[] = "Host: twitter.com\r\n";
(kein "www.")
Das Moved Permanently wird benutzt um den Browser umzuleiten; scheinbar will Twitter dich auf Twitter.com und nicht auf www.Twitter.com haben (merkt man auch sofort, wenn man das in Firefox eingibt; man landet immer auf Twitter.com, ohne www.).
Funktioniert :)
Aber leider lädt der nicht den ganzen Request.
MAX_BUF habe ich beliebig erhöht, ohne Änderung.
Ich hab den Text mal in einer Textdatei speichern lassen. Nopaste.me
Das Programm lädt nur bis <title>
30.11.2010, 16:59
Dj Hackmaster A
Man empfängt bis recv() 0 oder -1 zurückgibt. Auf den Bufferoverflow muss ich wohl nicht hinweisen?
Übrigens: Wenn du ein char-array als buffer nutzt, dann zeigt &array[0] zwar auf das erste Element, &array aber nicht.
01.12.2010, 16:04
luxury11
Habs mal geändert und es läuft. Ich hoffe mal der Buffing overfl0w is auch gefixt mit httpLength+strlen(httpResponse) <= MAX_BUF.