Telnet auslesen

  • Ich habe ein Problem mit einer Telentverbindung. Die Daten die per $sRecv ankommen werden in unterschiedlichen Stringlängen gesendet und ich möchte gerne auf bestimmte Aktionen, eine Reaktion erzeugen. Lege ich nun zum Beispiel $sRecv = „Test“ bekommen ich keine Reaktion, der Text per Telnet zuerst zum Beispiel „NT1“ ist danach kommt ein @LF irgendwann kommt mein“Test“, aber anhand der Cosolenausgabe ist kein = zu erzeugen. Hat das was mit den 1024 zu tun? Wie lässt sich ein String am leichtesten zuverlässig finden? Meine Versuche mit StringInStr waren leider auch nicht zufriedenstellend.
    Danke für jeden Tip


    [autoit]


    TCPStartup()

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

    $Socket = TCPConnect(TCPNameToIp("192.168.110.20"), 23)
    $sRecv = TCPRecv($Socket, 1024)

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

    while 1
    $sRecv = TCPRecv($Socket, 1024)
    If @error Then ExitLoop
    ConsoleWrite($sRecv)
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von kunstlust (24. August 2011 um 08:55)

  • Mit den 1024 hat das nichts zu tun. Jedenfalls nicht wenn du dein 'Test' empfängst. Dass es jedoch mit StringInString nicht funktioniert ist etwas seltsam.
    Wenn das nicht funktioniert wird es schwierig.

    [autoit]

    If StringInStr($sRecv, "Test") <> 0 Then ; etc

    [/autoit]

    Dann wirst du wohl ein Muster in den scheinbar zufälligen Strings davor finden müssen.

    Gruss Shadowigor

  • Danke Shadowigor ich habe versucht den String anzuzeigen per StringInStr\StringMid das war ja nicht notwendig ?(
    So geht es gut und ich komme weiter, ich danke dir.