我需要使用以下代码中的telnet会话:
class ModTelnet(MXComm):
def __init__(self):
MXComm.__init__(self)
def _connect(self):
#connect to telnet session @ localhost port 4444
try:
HOST = "localhost"
port = "4444"
# tn = telnetlib.Telnet(HOST, port)
tn.open(HOST, port)
except:
print "Connection refused"
def _receive(self):
#receive data (= msg) from telnet stdout
try:
data = tn.read_all()
return data
except tn.eof.ERR as ex:
if 'timeout error' not in ex.args[0]:
print 'Connection error:', ex
raise Disconnected()
def _send(self, data):
#send command to telnet session
try:
tn.write(data + "\n")
except tn.socket.error as ex:
if 'timeout error' not in ex.args[0]:
print 'Connection error:', ex
raise Disconnected()
以下是引发的错误:
QApplication: Invalid Display* argument
Connection refused
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
self.run()
File "/home/mk3/MODiMX27/PELM_Gui/src/modimx.py", line 188, in run
self._conn.try_get_data()
File "/home/mk3/MODiMX27/PELM_Gui/src/modimx.py", line 58, in try_get_data
rx_item = self._receive()
File "/home/mk3/MODiMX27/PELM_Gui/src/modimx.py", line 112, in _receive
except tn.eof.ERR as ex:
NameError: global name 'tn' is not defined
问题是它似乎无法识别我的第一种方法“连接”中打开的telnet会话......我们怎样才能以最好的方式做到这一点?
答案 0 :(得分:2)
tn
应为self.tn
,以便其他方法可以访问