【发布时间】:2017-12-20 00:55:54
【问题描述】:
我有接受 telnet 连接的设备以将其与 AT 命令一起使用
这是我的代码,我相信应该很简单,但由于某种原因它不起作用我对 telnet lib 还很陌生,所以我不明白我在这里缺少什么
def connect(self, host, port):
try:
Telnet.open(host, port)
Telnet.write('AT'+"\r")
if Telnet.read_until("OK"):
print("You are connected")
except:
print("Connection cannot be established")
它总是命中例外。
当我尝试导入 telnetlib 并仅使用没有端口的 IP 运行它时,我也收到以下错误。
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
Telnet.open('192.168.0.1')
TypeError: unbound method open() must be called with Telnet instance as
first argument (got str instance instead)
我无法理解它要我做什么。
【问题讨论】:
-
错误很明显,需要你指明端口。
-
端口不应该默认为23吗?
-
telnet = Telnet() , telnet.open(host, port) 。从错误中可以明显看出 open 不是静态方法
-
我想我明白了。这两个问题都源于
Telnet.open(...)。您需要先创建一个实例,然后在该实例上调用open和write。查看lungj的回答 -
@eyllanesc quamrana 说了什么:the port number defaults to the standard Telnet port (23)。但最好避免使用
.open方法,直接使用telnetlib.Telnet构造函数打开连接。
标签: python python-2.7 python-3.x telnet