telnetlib - 交互式控制台与脚本
telnetlib - interactive console vs script
问题是,我的脚本无法运行(它正在打印空通道),但它可以在 python 交互式控制台中运行。
import telnetlib
tn = telnetlib.Telnet("killermud.pl", 4000)
data = tn.read_very_eager()
data = data.decode()
print(data)
tn.close()
这种行为的原因是什么?
我刚刚查看了 read_very_eager
方法的文档,上面写着:
Read all data available already queued or on the socket,
without blocking.
很可能在您调用此方法时没有数据 "already available or queued on the socket",因此您什么也得不到。您可能想要使用类似于 read_until
方法的方法,该方法将读取数据直到找到特定的字符串。例如:
data = tn.read_until('Podaj swoje imie')
根据 tlnetlib 文档,Telnet.read_very_eager() 如果连接关闭且没有可用的熟数据,则引发 EOFError。 Return '' 如果没有可用的熟数据,否则。除非在 IAC 序列中,否则不要阻塞。
如果做data=="", returns true, 因此,表示没有cooked data可用
问题是,我的脚本无法运行(它正在打印空通道),但它可以在 python 交互式控制台中运行。
import telnetlib
tn = telnetlib.Telnet("killermud.pl", 4000)
data = tn.read_very_eager()
data = data.decode()
print(data)
tn.close()
这种行为的原因是什么?
我刚刚查看了 read_very_eager
方法的文档,上面写着:
Read all data available already queued or on the socket, without blocking.
很可能在您调用此方法时没有数据 "already available or queued on the socket",因此您什么也得不到。您可能想要使用类似于 read_until
方法的方法,该方法将读取数据直到找到特定的字符串。例如:
data = tn.read_until('Podaj swoje imie')
根据 tlnetlib 文档,Telnet.read_very_eager() 如果连接关闭且没有可用的熟数据,则引发 EOFError。 Return '' 如果没有可用的熟数据,否则。除非在 IAC 序列中,否则不要阻塞。 如果做data=="", returns true, 因此,表示没有cooked data可用