Hallo,
Da ich nicht weiß, wie es bei Langsameren Verbindungen ist, ob da zwischendrin ein TCPRecv einfach mal leer sein kann und erst das nächste wieder daten enthällt, und ich natürlich ALLE daten haben möchte habe ich mir eine schleife Geschrieben, die ERST DANN abbricht, wenn eine Sekunde nichts mehr gekommen ist:
[autoit];Verbindung hergestellt, rufe Request ab
$TimerDiff = 0
$TCPRecv = ""
$StartTime = -1
Do
$LastRecv = TCPRecv($TCPCon, 512)
$TCPRecv &= $LastRecv
if($LastRecv = "" AND $StartTime = -1) Then
$StartTime = TimerInit()
$TimerDiff = 0
Elseif($LastRecv = "" AND $StartTime <> -1) Then
$TimerDiff = TimerDiff($StartTime)
Else
$StartTime = -1
$TimerDiff = 0
endif
until StringInStr($TCPRecv, "$ENDREQUEST$") OR $TimerDiff > 1000
Allerdings finde ich diese Methode nicht grade der bringer... Gibt es vll. noch bessere methoden?
Habe jetzt 1. den string $ENDREQUEST$ drin, der am ende steht, oder als absolute sicherheit nochmal die 1 sekunde... Aber da gibt es bestimmt noch bessere möglichkeiten.
PS: @ERROR ist KEINE dieser möglichkeiten, da evtl. noch daten zurückgeschickt werden müssen.