telnetlib read vorgang unterbrechen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
w.olle
User
Beiträge: 27
Registriert: Sonntag 15. November 2009, 00:28

Hallo,
ich habe mal wieder ein Thema mit telnetlib.
Ich habe schon alles durchsucht, aber keine Lösung gefunden:

Ich öffne eine Telnet Session zu einem Server, und starte dort einen Vorgang. Wenn dieser Vorgang fehlschlägt gibt es (nach sehr langer Zeit) eine Fehlermeldung. Wenn ein User diesen Vorgang abbrechen möchte, so kann er theoretisch CTRL-C senden. Und genau das ist mein Problem. Diese Möglichkeit möchte ich gerne in Meinem Python script erlauben.
Ich verwende z.Zt. kein threading.

Ich hatte zunächst versucht eine while schleife zu verwenden, die stetig Telnetlib.read_very_eager() verwendet. Allerdings friert dann die GUI ein. Ich habe dann versucht mittels 'gobject.timeout_add' oder 'gobject.io_add_watch(self.tn.fileno(), gobject.IO_IN, self.on_telnet_io)' das Problem zu umgehen. Allerdings handelt es sich dabei ja quasi um Threading, und somit läuft der script dann einfach weiter, ohne Rücksicht auf das Ergebnis zu nehmen.

Bin ich hier gezwungen Threading einzusetzen und einen Worker für meine Telnetsession zu bauen, der dann mittels queue die Daten zurückgiebt ? Wie kann ich dann (immer dem gleichen) Thread die read / write Anweisungen übergeben ? Ich muss ja immer die gleiche Telnet session ansprechen.

Vorab vielen Dank,
Wolle
Antworten