Das Problem liegt in der Verbindungsgeschwindigkeit. Ich hatte die Header unter Windows XP mit Firefox und LiveHeader ermittelt und Keep_Alive mit 115 angegeben:
Delphi-Quellcode:
const
KEEP_ALIVE = 115;
...
function TClient.ReceiveBuf: Integer;
{*******************************************************************************
* -7- Die Antwort abrufen.
}
var
FBuffer : Array[0..cBufSize - 1] of Char;
begin
Result := -1;
if fConnected
then begin
fBytesRcvd := 0;
{
* Daten abrufen.
}
fBufferStr := '';
Result := -1;
while (Result < 0) or (Result = cBufSize)
do begin
sleep(KEEP_ALIVE);
FillChar(FBuffer, cBufSize, #0);
Result := recv(fSocket, FBuffer, cBufSize, 0);
{
* Die gelesenen Bytes übernehmen und die Anzahl aktualisieren.
}
fBufferStr := fBufferStr + FBuffer;
inc(fBytesRcvd, Result);
end;
end;
end;
Beim Abholen der Antwort wird diese Zeit gewartet. Unter Windows XP ist diese Zeitspanne ausreichend. Bei meinem Windows 7 Home Premium 64Bit musste ich die Zeitspanne auf 300 erhöhen, damit das "Lämpchen" grün wurde.
Somit bekomme ich jetzt
Zitat:
angezeigt. Dauert allerdings wegen der vielen Abfragen sehr lange.
Nachtrag:
Habe die geänderte Version ebenfalls im ersten Beitrag angehangen.