问题是,我的脚本无法正常工作(它打印空白通道),但它可以在python交互式控制台中运行。
import telnetlib
tn = telnetlib.Telnet("killermud.pl", 4000)
data = tn.read_very_eager()
data = data.decode()
print(data)
tn.close()
这种行为的原因是什么?
答案 0 :(得分:2)
我刚看了read_very_eager
方法的文档,其中说:
读取已排队或已插入的所有可用数据, 没有阻止。
当你调用这个方法时,很可能没有数据“已经可用或在套接字上排队”,所以你什么也得不回来。您可能希望使用read_until
方法之类的方法,该方法将读取数据,直到找到特定的字符串。例如:
data = tn.read_until('Podaj swoje imie')
答案 1 :(得分:0)
根据tlnetlib文档,Telnet.read_very_eager()如果连接已关闭且没有可用的熟化数据,则引发EOFError。如果没有熟食数据则返回''。除非在IAC序列中,否则不要阻止。 如果你做data ==“”,则返回true,因此,这意味着没有熟食数据