2016-03-01 46 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()