2024-10-01 04:54:11 发布
网友
问题是,我的脚本不能工作(它打印的是空通道),但它可以在python交互控制台中工作。在
import telnetlib tn = telnetlib.Telnet("killermud.pl", 4000) data = tn.read_very_eager() data = data.decode() print(data) tn.close()
这种行为的原因是什么?在
根据tlnetlib文件,Telnet.read_非常渴望()如果连接关闭且没有可用的熟数据,则引发EOFError。如果没有可用的熟数据,则返回“”。除非在IAC序列中,否则不要阻塞。 如果data==“”,则返回true,因此,这意味着没有可用的cooked数据
我刚刚看了read_very_eager方法的文档,上面说:
read_very_eager
Read all data available already queued or on the socket, without blocking.
很可能在您调用此方法时没有“已经可用或已在套接字上排队”的数据,因此您什么也得不到。您可能需要使用类似于read_until方法,它将读取数据,直到找到特定的字符串。例如:
read_until
data = tn.read_until('Podaj swoje imie')
根据tlnetlib文件,Telnet.read_非常渴望()如果连接关闭且没有可用的熟数据,则引发EOFError。如果没有可用的熟数据,则返回“”。除非在IAC序列中,否则不要阻塞。 如果data==“”,则返回true,因此,这意味着没有可用的cooked数据
我刚刚看了
read_very_eager
方法的文档,上面说:很可能在您调用此方法时没有“已经可用或已在套接字上排队”的数据,因此您什么也得不到。您可能需要使用类似于
read_until
方法,它将读取数据,直到找到特定的字符串。例如:相关问题 更多 >
编程相关推荐