Zitat von
SirTwist:
Und jedes Terminal versteht andere Steuersequenzen. Es gibt z.B. auch Terminals, die gar keine Farbcodes unterstützen.
Genau!
Und da der Begriff Terminal hier eingeführt wurde, kurz einen kleinen Schritt zurück:
Telnet ist ein Netzwerkprotokoll. Wie sich Client und Server z.B. beim Verbindungsaufbau zu unterhalten haben, steht u.a. in diesem Protokoll beschrieben.
Als Telnet entwickelt wurde, gab es keine PC's. Was man heute Client nennen würde, waren oft nur klobige Terminals, die grob gesagt oft nicht mehr waren als ein "Schwarz-Weiß-Fernseher mit Tastatur", der Buchstaben und Zahlen anzeigen konnten. Interessant für den Server wird die Art oder der Typ eines Terminal-Clients erst nach Verbindungsaufbau. Genauer: Für das auf dem Server ablaufende Kommunikationsprogramm wird es interessant. Dieses muss dann den "anrufenden" Terminaltyp kennen, um mit ihm ein und dieselbe Sprache zu sprechen. Unterschiedliche Terminaltypen kennen unterschiedliche Befehlssequenzen. Der Server muss also wissen, was er zu schicken hat, damit das Terminal seinen Bildschirm löscht. Er muss auch wissen, ob das Terminal Farbe anzeigen kann oder nicht. Usw. usf. etc. pp.
Heutige Computer sind natürlich keine Terminals mehr. Sie besitzen keinen einzigartigen Terminalbefehlssatz zur Steuerung ihres Anzeigebildschirms. Computer müssen ggf. lediglich einem Server gegenüber als Terminal auftreten. Dazu wird ein "Terminalprogramm" auf ihnen ausgeführt, welches ein Terminal emuliert. Wenn nun z.B. ein VT220-Terminal emuliert wird bzw. der Server annimmt, er kommuniziert mit einem solchen Terminal, so könnte das Serverprogramm mit lustigen Sequenzen daherkommen, die versuchen, auf dem Client z.B. ein Wort invers und blinkend darzustellen.
Nun zurück zum Problem:
Wenn eine bestimmte Terminalemulation gefahren wird, so sollte man sich als Programmierer der Client- und/oder Serversoftware wohl oder übel mit der dazugehörigen "Sprache" beschäftigen.
Wenn man Server- und Clientprogramm programmiert und sich entschließt, keine bestehenden/bekannten Emulationen zu benutzen, so kann man sich auch selber eine Sprache stricken. Hauptsache, Server und Client verstehen sich.
Und auf den Thread bezogen bringt mich das zu der Frage: Was soll eigentlich programmiert werden? Ein Telnet-Client oder ein Telnet-Server? Von welchem Delete-Befehl, der eine PW-Abfrage erforderlich machen soll, war weiter oben im Thread die Rede? Welche "Sprache", die Server und Client gemeinsam sprechen müssen, definiert denn diesen Delete-Befehl?
Wenn über die Telnet-Verbindung geheime Dinge wie Paßwörter rauschen, die auf dem Client nicht angezeigt werden sollen, so darf der Client die Paßworteingabe nicht echoen. Normalerweise ist das lokale Echo aber meist eh abgeschaltet. Der Server darf ebenfalls nichts senden oder aber pro Buchstabe einen * zurückschicken. Wichtig ist, dass der Server auch wirklich weiß, wann er nichts zu senden hat.