Frage zu TCPListen

  • Hi,

    bei TCPListen gibt es ja den Parameter "MaxPendingConnection". Wollte nun wissen ob das so richtig ist wie ich das verstanden habe.

    Wenn man bei "MaxPendingConnection" z.B. den Wert 100 eingibt können sich 100 Clients zum Server verbinden. Diese reihen sich dann in einer Warteschlange ein und können nacheinander mit TCPAccept abgearbeitet werden.

    Also so:

    Spoiler anzeigen
    [autoit]

    TCPStartup()
    $MainSocket = TCPListen(@IPAddress1, 33891, 100)

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

    While 1
    $ConnectedSocket = TCPAccept($MainSocket)
    If $ConnectedSocket <> -1 Then ExitLoop
    Wend

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

    TCPShutdown()

    [/autoit]

    Wenn nun also sich drei Clients zum Server verbinden wird der erste in der Schleife mit TCPAccept angenommen und die anderen zwei Warten in der Warteschlange. Ist dann der erste Client abgearbeitet wird mit TCPAccept dann der nächste Client aus der Warteschlange geholt.

    Hab ich das so richtig verstanden?

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • ja, aber durch deinen if-satz in zeile 6 wird sich das script direkt wieder beenden, ausser wenn jemand bereits versucht über den port die verbindung aufzunehmen

    Mfg. PCKing


    Mein PC

    CPU: AMD FX 8350 8x4.00GHz
    Ram: 8GB DDR3
    Grafikkarte: Nvidia Geforce GTX 960 (4GB)
    Festplatten: 500GB SSD 1TB HDD
    Laufwerk: Blueray RW+ Brenner

  • Ja das ist klar. Ging mir darum ob Client sofort wieder gekickt werden wenn ein anderen mit TCPAccept angenommen wurde oder ob sie wirklich in einer Warteschlange bleiben.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.