2016-03-01 57 views
0

,有没有办法关闭telnet会话如果设备不支持没有终止telnet会话,所以没有按ctrl +东西或退出之类的东西。Python的telnetlib如果我使用Python telnetlib结束会话

我需要这个,这样我可以read.all使用

+0

我没有一个telnet服务器方便检查,但尝试调用'.close()'读取之前。 – tdelaney

+0

...或者可能不是。看着来源,这是行不通的。在'import socket'之后,假设你的会话被称为'session',请尝试'session.get_socket()。shutdown(socket.SHUT_WR)'。这应该说服对方终止其连接方。 – tdelaney

+0

试过,但得到这个: – Dominik

回答

0

网络套接字让你关机写入和/或读取信道,让对方知道你已经完成了谈话的一部分。对于telnet服务器,关闭写入通道是退出。它应该完成发送管道中的任何内容,然后完全关闭连接。该关闭是EOF并且read_all应该返回。因此,假设你已经有了一个连接称为tn

tn.get_socket().shutdown(socket.SOCK_WR) 
data = tn.read_all() 
tn.close()