【问题标题】:Python telnetlib ending sessionPython telnetlib 结束会话
【发布时间】:2019-05-16 18:16:38
【问题描述】:

如果我使用 Python telnetlib,如果该设备不支持终止 telnet 会话,那么有没有办法关闭 telnet 会话,所以没有 ctrl+something 或 quit 或类似的东西。

我需要这个以便我可以使用 read.all

【问题讨论】:

  • 我没有方便查看的 telnet 服务器,但请尝试在阅读前致电 .close()
  • ...也许不是。看源码,那是行不通的。在import socket 之后并假设您的会话称为session,请尝试session.get_socket().shutdown(socket.SHUT_WR)。这应该可以说服对方终止它的连接。
  • 试过了,但得到了这个:
  • tn.get_socket().shutdown(socket.SHUT_WR) NameError: name 'socket' is not defined "tn" 是 session 的 neme,但什么是 "socket"?
  • 是socket模块的名字。如调用前所示导入。

标签: python telnetlib


【解决方案1】:

网络套接字让您可以关闭写入​​和/或读取通道,让对方知道您已经完成了该部分的对话。对于 telnet 服务器,关闭写入通道是一个退出。它应该完成发送发送管道中的任何内容,然后完全关闭连接。关闭是一个 EOF,read_all 应该返回。所以,假设你已经有了一个名为tn的连接

tn.get_socket().shutdown(socket.SHUT_WR)
data = tn.read_all()
tn.close()

【讨论】:

    猜你喜欢
    • 2013-08-22
    • 2015-02-04
    • 2016-11-18
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 2012-11-09
    相关资源
    最近更新 更多