Aqui está uma pequena receita do Python que eu uso sempre que tenho que lidar com a obtenção do stdout de um terminal telnet (com mais frequência do que você imagina!).
O código (Python):
import telnetlib
class TelnetWorkers(object):
"""
Creates our connection, holds and handles data.
"""
def __init__(self, IP, PORT):
# IP and PORT are strings
self.connection = telnetlib.Telnet(IP, PORT)
self.data = []
def getMoreData(self):
"""
Reads STDOUT, splits on and strips 'rn'.
Returns list.
"""
# 10 means that we're going to timeout after 10 seconds if
# we don't get any input that satisfies our regex.
cursor = self.connection.read_until('rn', 10)
# Make sure we have something to work with.
if len(cursor) > 0:
for line in cursor.split(','):
# Sometimes we get empty strings on split.
if line != '':
self.data.append(line)
return self.data
... Add your specific methods here ...
Isso é útil se você estiver recebendo dados, como de rotas de navegação (dados AIS), para um servidor telnet e quiser usar esses dados de alguma forma (decodificação para exibição de mensagem / posição).