1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Norrec

Beiträge von Norrec

  • lokaler TCP Server (Telnet) reconnect/timeout von socket benötigt

    • Norrec
    • 22. Januar 2018 um 19:24

    Meine Lösung.

    AutoIt
    Dim $IPAddress = "127.0.0.1", $Port = 23
    TCPStartup()
    $TCPListenSocket = TCPListen($IPAddress, $Port,10)
    While 1
      $TCPAcceptSocket = TCPAccept($TCPListenSocket)
      TCPSend($TCPAcceptSocket, "test"&@CRLF)
      While $TCPAcceptSocket <> -1
         $receivedData = TCPRecv($TCPAcceptSocket, 2048)
         If $receivedData <> "" Then $Timer = TimerInit()
         If TimerDiff($Timer) > 1000 Then
            TCPSend($TCPAcceptSocket, 0) ;keepalive senden [NULL (NUL) 0 No Operation] RFC854; Hat der TelnetClient die Sesion unerwartet beendet, erzeugt der keepalive ERROR 100053
            If @error Then
               ConsoleWrite ("Socket ID:"&$TCPAcceptSocket&" Timeout. Error:"&@error&@CR)
               TCPCloseSocket($TCPAcceptSocket)
               $TCPAcceptSocket = -1
               $Timer = TimerInit()
            EndIf
         EndIf
         If $receivedData <> "" Then ConsoleWrite ("Sockeet ID:"&$TCPAcceptSocket&" Data: "&$receivedData)
      WEnd
    WEnd
    Alles anzeigen
  • lokaler TCP Server (Telnet) reconnect/timeout von socket benötigt

    • Norrec
    • 21. Januar 2018 um 21:21

    Danke für die schnelle Antwort

    Wenn ich die stabile Putty-Session dupliztiere, öffent sich eine weitere Putty-Session die aber keinerlei kommunikation zum Server hinbekommt aber auch nicht abgewiesen wird.

    Schließe ich nun die stabile Session und im Anschluss die Bug-Session, gelingt es dem server Script gleich zwei mal die Session zu beenden und zurück zur TCP Accept Schleife zu springen.

    Mysteriös

  • lokaler TCP Server (Telnet) reconnect/timeout von socket benötigt

    • Norrec
    • 21. Januar 2018 um 20:49

    hallo zusammen,

    im GUI Desingnen bin ich noch schlechter als im scripten. Daher habe ich mir überlegt eine vorhandene CLI als Bedienoberfläche für meine Funktionen zu nutzen. nach dem ich versucht habe "CMD" für meine Zwecke mit mäßigem Erfolg zu missbrauchen, habe ich mich entschlossen Putty (Telnet) als Bedienoberfläche zu verwenden. Also Putty ist mein Client und das Script ist der Server.

    soweit so gut


    AutoIt
    Dim $IPAddress = "127.0.0.1", $Port = 23
    
    TCPStartup()
    $TCPListenSocket = TCPListen($IPAddress, $Port,10)
    
    While 1
      $TCPAcceptSocket = TCPAccept($TCPListenSocket)
    
      TCPSend($TCPAcceptSocket, "test"&@CRLF)
      While $TCPAcceptSocket <> -1
         $receivedData = TCPRecv($TCPAcceptSocket, 1024)
    ;~                TCPSend($TCPAcceptSocket, ">")
         If @error Then
            ConsoleWrite ("TCP Socket ID:"&$TCPAcceptSocket&" Timeout."&@CR)
            TCPCloseSocket($TCPAcceptSocket)
            $TCPAcceptSocket = -1
         EndIf
    ;~      If $receivedData <> "" Then ConsoleWrite ("TCP Receive from Sockeet ID:"&$TCPAcceptSocket&" Data: "&$receivedData&@CR)
         ConsoleWrite ("TCP Receive from Sockeet ID:"&$TCPAcceptSocket&" Data: "&$receivedData&@CR)
      WEnd
    WEnd
    Alles anzeigen

    Habe ich ein mal eine Telnet Verbindung hergestellt, funktioniert die Verbindung auch ausreichen gut. Schließe ich mein Telnet Terminal, sollte @error das aktuelle Socket eigendlich schließen. Leider triggert @error nicht. Was übersehe ich?

    als Notlösung lasse ich momentan den Server etwas im Socket zum Client senden. Ist das Putty-Terminal geschlossen triggert dann @error. Für diesen keepalive habe ich noch kein Zeichen gefunden, welches unsichtbar bleibt und somit die Puttysession nicht stört.

    Vielen Dank das du bis hier her gelesen hast

    Liebe Grüße Niklas

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™