Hey Leute, ich hab eine Frage bezüglich des Befehls
[autoit]TCPRecv()
[/autoit]weis jemand was die maximale Länge an empfangenen Zeichen ist?
weis auch jemand wie man die maximale Länge an empfangenen Zeichen auf unendlich setzen kann?
mfg Timo
Hey Leute, ich hab eine Frage bezüglich des Befehls
[autoit]TCPRecv()
[/autoit]weis jemand was die maximale Länge an empfangenen Zeichen ist?
weis auch jemand wie man die maximale Länge an empfangenen Zeichen auf unendlich setzen kann?
mfg Timo
TCPRecv hat einen Parameter bei dem du die maximale länge einstellen kannst. Auf unendlich setzen kannst du den nicht und das macht auch keinen Sinn.
Wenn du sehr viele Daten empfängst, füllst du dir damit unter Umständen deinen ganzen Arbeitsspeicher. Und das willst du doch nicht.
Wenn du TCPRecv mehrmals aufrufst, wirst du aber auch alle Daten erhallten. Die werden zuerst in einem Buffer zwischengespeichert.
Und die anzahl der erhaltenen Zeichen steht in @extended. Steht alles in der Hilfe.
Gruss Shadowigor
wie meinste des mit mehrmals aufrufen? kannste mir nen kurzes Beispiel machen/geben?
$wholedata = ""
While 1
$rcv = TCPRecive($main,2048)
If @error Then ExitLoop
[/autoit][autoit][/autoit][autoit]If $rcv<>"" Then $wholedata &= $rcv
Wend
und wie siehts auf der Sende-Seite aus? pausiert TCPSend() und setzt sein Senden fort wenn TCPRECV() wieder berreit ist?
mfg Timo
In TCP (anders als in UDP) wird alles was empfangen wird in einen Buffer geschrieben. Mit TCPRecv. bekommst du nun immer eine bestimmte Anzahl von Zeichen aus diesem Buffer, wobei trotzdem die ganze Zeit gesendet werden kann, da es ans Ende vom Buffer kommt und sich "sammelt".
ahhhhhh
Danke für die gute Erklärung(: