TCPRecv - Länge der empfangenen Daten

  • 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

  • [autoit]


    $wholedata = ""
    While 1
    $rcv = TCPRecive($main,2048)

    [/autoit][autoit][/autoit][autoit]

    If @error Then ExitLoop

    [/autoit][autoit][/autoit][autoit]

    If $rcv<>"" Then $wholedata &= $rcv
    Wend

    [/autoit]

    -

  • 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".

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake