socket.error: [Errno 10061]
来源:7-3 如何让对象支持上下文管理

有事烧纸
2018-06-04
class TelnetClient(object): def __init__(self, addr, port=23): self.addr = addr self.port = port self.tn = None def start(self): self.tn = Telnet(self.addr, self.port) self.history = deque() # user t = self.tn.read_until('Login: ') stdout.write(t) user = stdin.readline() self.tn.write(user) # password t = self.tn.read_until('Password: ') if t.startswith(user[:-1]): t = t[len(user) + 1:] stdout.write(t) self.tn.write(stdin.readline()) t = self.tn.read_until('$ ') stdout.write(t) while True: uinput = stdin.readline() if not uinput: break self.history.append(uinput) self.tn.write(uinput) t = self.tn.read_until('$ ') stdout.write(t[len(uinput) + 1:]) def cleanup(self): self.tn.close() self.tn = None with open(self.addr + '_history.txt', 'w') as f: f.writelines(self.history) zengqian@ubuntu:~/Desktop$ python telnet.py start... Traceback (most recent call last): File "telnet.py", line 66, in <module> client.start() File "telnet.py", line 28, in start self.tn = Telnet(self.addr, self.port) File "/usr/lib/python2.7/telnetlib.py", line 211, in __init__ self.open(host, port, timeout) File "/usr/lib/python2.7/telnetlib.py", line 227, in open self.sock = socket.create_connection((host, port), timeout) File "/usr/lib/python2.7/socket.py", line 575, in create_connection raise err socket.error: [Errno 111] Connection refused
3回答
-
有事烧纸
提问者
2018-06-06
class TelnetClient(object): def __init__(self, addr, port=23): self.addr = addr self.port = port self.tn = None def start(self): # user t = self.tn.read_until('Login: ') stdout.write(t) user = stdin.readline() self.tn.write(user) # password t = self.tn.read_until('Password: ') if t.startswith(user[:-1]): t = t[len(user) + 1:] stdout.write(t) self.tn.write(stdin.readline()) t = self.tn.read_until('$ ') stdout.write(t) while True: uinput = stdin.readline() if not uinput: break self.history.append(uinput) self.tn.write(uinput) t = self.tn.read_until('$ ') stdout.write(t[len(uinput) + 1:]) def cleanup(self): pass def __enter__(self): # __enter__()返回的才是with中as的对象 self.tn = Telnet(self.addr, self.port) self.history = deque() return self def __exit__(self, exc_type, exc_val, exc_tb): # 无异常的情况下三个参数都是None self.tn.close() self.tn = None with open(self.addr + '_history.txt', 'w') as f: f.writelines(self.history) # 默认返回None # return True # 不抛出异常 with TelnetClient('127.0.0.1') as client: client.start() ---------------------------------------------------------------------- python版本2.7.14 报错信息: Traceback (most recent call last): File "C:/Users/z_oro/Desktop/zeng.qian/python skill/7_3.py", line 120, in <module> with TelnetClient('127.0.0.1') as client: File "C:/Users/z_oro/Desktop/zeng.qian/python skill/7_3.py", line 98, in __enter__ self.tn = Telnet(self.addr, self.port) File "C:\qianzeng\Python\Python27\lib\telnetlib.py", line 211, in __init__ self.open(host, port, timeout) File "C:\qianzeng\Python\Python27\lib\telnetlib.py", line 227, in open self.sock = socket.create_connection((host, port), timeout) File "C:\qianzeng\Python\Python27\lib\socket.py", line 575, in create_connection raise err socket.error: [Errno 10061]
00 -
有事烧纸
提问者
2018-06-06
telnet服务开启之后:
Traceback (most recent call last):
File "C:/Users/z_oro/Desktop/zeng.qian/python skill/7_3.py", line 120, in <module>
with TelnetClient('127.0.0.1') as client:
File "C:/Users/z_oro/Desktop/zeng.qian/python skill/7_3.py", line 98, in __enter__
self.tn = Telnet(self.addr, self.port)
File "C:\qianzeng\Python\Python27\lib\telnetlib.py", line 211, in __init__
self.open(host, port, timeout)
File "C:\qianzeng\Python\Python27\lib\telnetlib.py", line 227, in open
self.sock = socket.create_connection((host, port), timeout)
File "C:\qianzeng\Python\Python27\lib\socket.py", line 575, in create_connection
raise err
socket.error: [Errno 10061]012018-06-11 -
程序员硕
2018-06-04
telnet服务器启动了?
00