首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >telnetlib -交互式控制台与脚本

telnetlib -交互式控制台与脚本
EN

Stack Overflow用户
提问于 2015-09-27 12:48:10
回答 2查看 794关注 0票数 0

问题是,我的脚本不能工作(它正在打印空通道),但是它可以在python交互控制台中工作。

代码语言:javascript
复制
import telnetlib

tn = telnetlib.Telnet("killermud.pl", 4000)
data = tn.read_very_eager()
data = data.decode()
print(data)
tn.close()

这种行为的原因是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-27 12:53:22

我只是看了一下read_very_eager方法的文档,它说:

读取已排队或套接字上的所有可用数据,而不阻塞。

很可能在您调用此方法时,没有数据“已在套接字上可用或排队”,因此您将一无所获。您可能希望使用类似于read_until方法的方法,它将读取数据直到找到特定的字符串。例如:

代码语言:javascript
复制
data = tn.read_until('Podaj swoje imie')
票数 2
EN

Stack Overflow用户

发布于 2015-09-27 13:03:23

根据tlnetlib文档,如果连接关闭且没有经过处理的数据,Telnet.read_very_eager()会引发EOFError。如果没有熟透的数据,则返回“”。除非在IAC序列中,否则不要阻塞。如果您执行data=="",则返回true,因此,这意味着没有现成的数据可用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32808077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档