TCP MultiClient Server

    • Offizieller Beitrag

    Hallo

    Ganz kurz nur: Das ist ein MultiClient Server. Das bedeutet, es können auf einem Server mehrere Clients (vordefiniert 50, kann man aber ändern indem man die Global Const $index ändert) verwaltet werden. Was man damit macht ist egal, man kann z.B. Dateien senden oder einfach Textnachrichten.

    Hier ist ein Kleiner Beispiel Client:

    Spoiler anzeigen
    [autoit]

    Global $sVersion = @AutoItVersion
    Global $IP = "192.168.0.2"
    Global $iBufferSize = 1024
    TCPStartup()
    While 1
    Sleep(500)
    $Socket = TCPConnect($IP, 20202)
    If Not @error Then ExitLoop
    WEnd
    TCPSend($Socket, @ComputerName & Chr(1) & $sVersion)
    ConsoleWrite(@ScriptLineNumber & @CRLF)

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

    While 1
    $recv = TCPRecv($Socket, 1)
    If @error Then ExitLoop
    ConsoleWrite($recv & @CRLF)
    Switch $recv
    Case Chr(1)
    ConsoleWrite(@ScriptLineNumber & @CRLF)
    $recv = TCPRecv($Socket, $iBufferSize)
    Switch StringLeft($recv, 4)
    Case "KICK"
    If @Compiled Then Run(@ScriptFullPath, @WorkingDir)
    Exit
    Case "SDWN";Shutdown
    MsgBox(0,"","Shutdown in 10 Seconds",10)
    Shutdown(Number(StringTrimLeft($recv, 4)))
    Case "RUN:"
    Run(StringTrimLeft($recv, 4))
    Case "KILL"
    WinKill(StringTrimLeft($recv, 4))
    Case "Exit"
    ExitLoop
    EndSwitch
    Case Chr(2)
    ConsoleWrite(@ScriptLineNumber & @CRLF)
    _Incoming($Socket)
    If @error Then ExitLoop
    EndSwitch
    WEnd

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

    Func _Incoming($hSocket);nicht besonders schön aber ganz schnell gemacht
    Beep()
    Local $sRecv = TCPRecv($hSocket,$iBufferSize)
    While $sRecv = ''
    $sRecv = TCPRecv($hSocket,$iBufferSize)
    WEnd
    MsgBox(0,"Text erhalten:",$sRecv)
    EndFunc

    [/autoit]

    Mfg Spider