【问题标题】:Telnetlib: Not receiving anythingTelnetlib:没有收到任何东西
【发布时间】:2016-07-05 02:04:46
【问题描述】:

我有一个关于 Python 的 telnetlib-Library 的问题。

import telnetlib

message= ('\x02'+'DD'+'\x03')
print message

tn = telnetlib.Telnet('IP','PORT')
tn.write(message)
while True:
   data = tn.read_all()
   if data:
       print data

我想与数据记录器通信。数据记录器需要如下所示的命令:

STX + 命令 + ETX

通过 Putty / telnet 将 STX+command+ETX 短语发送到数据记录器,数据记录器会“回答”,例如通过发送当前时间。

现在,我想通过 python 脚本向记录器发送相同的内容。不幸的是,我在 python shell 中没有收到任何答案,只是一个空格。

你能帮帮我吗?

请注意, 菲尔

【问题讨论】:

  • 只是猜测:尝试在您发送的字符串末尾添加\n\r\n。还可以使用 print repr(data) 查看返回的确切字符串。
  • 另一个猜测:你需要登录数据记录器吗?
  • 没有。正如我在原始问题中提到的,所有命令都可以通过 Putty 提交来工作......
  • tn.read_all()-command tn.write(message)之后是否有问题?也许python脚本应该在之前命令被提交?
  • 我会接受@PM2Ring 的建议。在命令末尾添加换行符。我自己完全完成了这件事,并花了一个小时想知道为什么我的仪器在通过 PuTTY 时没有回复我。

标签: python telnetlib


【解决方案1】:

对特殊字符代码使用双引号

message= ("\x02"+'DD'+"\x03")

您是否已经声明了 IP 地址和端口号。

tn = telnetlib.Telnet('192.168.0.10',2021)

【讨论】:

  • 为什么你认为在字符串文字上使用双引号会有所不同?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-01
  • 2013-10-03
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多