首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python的telnetlib模块有问题

Python的telnetlib模块有问题
EN

Stack Overflow用户
提问于 2009-12-22 17:06:35
回答 3查看 3.7K关注 0票数 4

我有一个基本的聊天服务器,我可以很容易地连接到telnet。我只需输入主机和端口,无需任何进一步的身份验证,就可以开始输入服务器可以解释的命令。为了模拟用户流量,我想创建一个脚本,它将打开telnet,连接到服务器,并立即开始向服务器发送命令。我最初尝试使用批处理脚本完成此操作,但在遇到太多障碍后,我决定使用Python的telnetlib模块。这就是脚本现在的样子

代码语言:javascript
复制
import telnetlib
myTel = telnetlib.Telnet('XXX.XXX.XXX.XXX', XXXX)
myTel.write('login')
myTel.write('move room')
myTel.write('say message')
myTel.write('exit')
myTel.write('logout')

它真的很简单,脚本运行时没有任何错误。但是,如果我已经在另一个telnet会话中手动登录到服务器,我看不到脚本进入主房间或发送聊天消息,这使我相信出了问题。如果我手动启动两个telnet会话,我可以很容易地在两个会话之间发送和接收消息,因此我认为手动telnet会话应该从脚本启动的会话接收消息。

有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2009-12-22 17:13:05

也许添加一个换行符会有所帮助?

代码语言:javascript
复制
myTel.write('login\n')

我也推荐使用一些网络嗅探工具(如Wireshark)来验证你是否真的在发送你想要的东西。

票数 3
EN

Stack Overflow用户

发布于 2009-12-22 17:09:31

在您的代码中,您向服务器写入数据,但是为了接收数据,您最终必须将其中一个库的read methods。要查看带有“读取线程”的客户端的示例实现,请参阅此博客文章:http://hahong.org/blog/posts/261

fn.还可以尝试:

代码语言:javascript
复制
myTel.write('login\n')

。。换行符。

票数 0
EN

Stack Overflow用户

发布于 2009-12-22 17:19:14

我将使用read_until检查服务器是否已准备好接收命令,以下是使用telnet与思科交换机通信的示例:

代码语言:javascript
复制
from telnetlib import Telnet
PASSWD = "mypass"

t = Telnet(switch)
t.read_until("Password: ", 2)
t.write(PASSWD + "\r\n")

在这里,我等待密码提示,然后再发送密码。

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

https://stackoverflow.com/questions/1945084

复制
相关文章

相似问题

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