Python方面有问题';s telnetlib模块

Python方面有问题';s telnetlib模块,python,telnet,Python,Telnet,我有一个基本的聊天服务器,我可以很容易地连接到telnet。我只需输入主机和端口,无需进一步验证,就可以开始输入服务器可以解释的命令。为了模拟用户流量,我想创建一个脚本,它将打开telnet,连接到服务器,并立即开始向服务器发送命令。我最初尝试使用批处理脚本来实现这一点,但在遇到太多的障碍后,我决定使用Python的telnetlib模块。这就是脚本现在的样子 import telnetlib myTel = telnetlib.Telnet('XXX.XXX.XXX.XXX', XXXX) m

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

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会话应该从脚本启动的会话接收消息


有什么想法吗?

在您的代码中,您向服务器写入数据,但为了接收数据,您最终必须访问库中的一个。要查看具有“阅读线程”的客户端的示例实现,请参阅以下博客文章:

fn。还可以尝试:

myTel.write('login\n')

。。有新行。

也许添加新行会有所帮助

myTel.write('login\n')

我还建议使用一些网络嗅探工具(如Wireshark)来验证您是否真的发送了您想要的内容。

我将使用read_直到检查服务器是否准备好接收命令这里是一个使用telnet与cisco交换机对话的示例:

from telnetlib import Telnet
PASSWD = "mypass"

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

在这里,我在发送密码之前等待密码提示。

下一句话是:“或者,可以将主机名、可选端口和超时传递给构造函数,在这种情况下,将在构造函数返回之前建立与服务器的连接。”我在脚本中添加了一些read_-until命令,并在每个write命令的字符串中添加了一个\n,但仍然没有添加任何内容。还有其他想法吗?