Подключение к серверам telnet с помощью Python

Я хочу интерактивно подключиться к серверу telnet в Python и иметь возможность читать и записывать текст на сервер. Я пытаюсь подключиться к следующему коду:

import telnetlib
host = telnetlib.Telnet("mud.accursed-lands.com",8000)
host.read_very_eager()

Но когда я это делаю, ничего не происходит. Если я оберну host.read_very_eager() в print, то получу b'', что, я думаю, представляет собой пустой бит.

Как я могу интерактивно подключиться к этому серверу?


person chopper draw lion4    schedule 05.08.2014    source источник
comment
b на самом деле является классом bytes.   -  person James Mertz    schedule 05.08.2014
comment
И вы можете подключиться и немедленно получить ответ, если вы подключитесь к MUD вручную с помощью стандартного клиента telnet?   -  person Some programmer dude    schedule 05.08.2014
comment
возможный дубликат Доступ к сеансу telnet в python   -  person Robᵩ    schedule 05.08.2014
comment
Под интерактивностью вы имеете в виду взаимодействие между вашим скриптом Python и грязным сервером? Или вы имеете в виду взаимодействие между вашим пользователем-человеком и сервером грязи?   -  person Robᵩ    schedule 05.08.2014
comment
Между человеком-пользователем и грязным сервером   -  person chopper draw lion4    schedule 05.08.2014
comment
Тогда дубликат, о котором я упоминал, вам не поможет. В нем описывается, как заставить вашу программу Python взаимодействовать с сервером telnet.   -  person Robᵩ    schedule 05.08.2014
comment
Кстати, ваш фрагмент кода дает ожидаемый результат. .read_very_eager() возвращает только те данные, которые уже были получены, без ожидания. К тому времени, когда вы позвонили .read_very_eager(), еще ничего не было получено. Чтобы продемонстрировать это, добавьте time.sleep(1) перед вызовом .read_very_eager().   -  person Robᵩ    schedule 05.08.2014
comment
Как сделать так, чтобы вы получали постоянный поток ввода? Трудно поверить, что то, что я делаю, так сложно, как это. Я имею в виду, что я просто хочу добиться того, что легко сделать в терминале, набрав telnet host:port, но я хочу сделать это в Python, а не в терминале.   -  person chopper draw lion4    schedule 05.08.2014
comment
Как ваша программа взаимодействует с пользователем-человеком? Графически? Через print()/raw_input()?   -  person Robᵩ    schedule 05.08.2014
comment
Да, print()/raw_input()   -  person chopper draw lion4    schedule 05.08.2014
comment
Ваш код отлично работает и для меня, получая ожидаемый результат   -  person deinonychusaur    schedule 05.08.2014