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
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