При использовании telnet в Python, при разрыве связи или закрытии сокета на удаленной стороне, telnet может не выдать ошибку закрытия соединения. Отловить разрыв соединения можно отправив NOP команду, ниже пример как можно определить разрыв соединения:
import telnetlib
import socket
try:
tn = telnetlib.Telnet('google.com', 80)
tn.write('GET / HTTP/1.0\n\n')
while True:
buf = tn.read_some()
if buf:
print buf
else:
tn.sock.sendall(telnetlib.IAC + telnetlib.NOP)
except socket.error:
print 'connection was closed'