如何使用 Asyncio 在 Python 中创建 Telnet 客户端2024 年 8 月 29 日 | 4 分钟阅读 引言在本教程中,我们将讨论如何使用 Python 的 Asyncio 创建 telnet 客户端。Telnet 是一种客户端/服务器软件协议,它使用 TCP/IP 进行连接。Telnet 协议允许用户登录并使用远程计算机,就像它们直接连接到本地网络一样。使用此系统进行连接的客户端是客户机,而连接的远程计算机是服务器。在 Telnet 客户端的终端中输入的指令将在服务器(远程计算机)上执行,并且命令的输出将定向到客户端计算机的显示器。Telnet 不安全,因为它使用纯文本通信。使用加密来加密传输数据的安全 Telnet 实现是 SSH(安全 Shell)。Telnet 协议是 I/O 绑定的,并且 I/O 非常慢。例如,由于服务器端的速度很慢,与服务器建立连接可能需要很长时间;这会导致大量 CPU 空闲时间,因为需要与服务器创建许多此类连接,asyncio 库非常适合此类项目。 Asyncio(异步输入/输出)是一个用于并发编程的 Python 库。异步是一种编程风格,在这种风格中,进程同时执行(而不是并发执行)。计算(单线程)中只有一个 CPU 核心,因此任务轮流执行和处理。项目 1 可能先开始,然后 CPU 在中间过程开始执行项目 2;CPU 可能会选择在任务之间切换以优化资源利用率并最大程度地减少空闲时间。 Telnet 是一种网络协议,它允许一台计算机上的客户端登录到同一网络中的另一台计算机。Telnet 命令与主机名一起使用,然后输入用户的凭据。成功登录后,远程用户可以像普通用户一样访问该设备上的程序和信息。当然,一些权限可以由设置和维护该设备的设备管理员控制。在 Python 中,Telnet 通过 telnetlib 实现,该库具有 Telnet 类以及建立连接所需的方法。在下面的示例中,我们还使用 getpass 模块来处理登录过程中的密码提示。此外,我们假设连接到 Unix 主机——Telnetlib 中的方法之一。程序中使用的 Telnet 类在下面进行了解释。 1. read_until - 读取直到遇到给定的标准字符串或直到超时。 2. write - 将字符串写入套接字,加倍 IAC 字符。如果连接是安全的,它可能会阻塞。如果连接关闭,可能会引发 socket.error。 3. read_all() - 读取直到 EOF 的所有数据;阻塞直到连接关闭。 创建 Telnet 客户端的步骤是什么?创建 telnet 客户端的步骤如下: 定义异步 Telnet 客户端函数使用 asyncio.open_connection() 协程和参数 host、port 打开到服务器的连接,此函数返回 reader 和 writer,它们是 StreamReader 和 StreamWriter 类的实例。这些项用于从服务器读取和写入服务器。语句 await reader.readline() 返回从服务器接收到的一行,并在等待服务器响应时产生控制,从而生成一个受控的流程,告知事件循环,当协程等待响应时,继续并使用处理能力进行其他计算。打印从服务器收到的响应。一旦成功建立连接,就可以使用 StreamWriter 类的 writer 项发送文本命令,服务器可以本地执行这些命令,并且可以通过 StreamReader 类的对象查看结果,关闭连接。 结论通过本教程,我们正在讨论如何使用 asyncio 在 Python 中创建 telnet 客户端。 Telnet 是一种客户端/服务器软件协议,它使用 TCP/IP 进行连接。Telnet 协议允许用户登录并使用远程计算机,就像它们直接连接到本地网络一样。使用此系统进行连接的客户端是客户机,而连接的远程计算机是服务器。 |
Python 等编程语言的强大之处在于它为用户提供了广泛的模块和库。这次我们将探索其中之一。每个人都可能在某个时候或另一个时候遇到过...
阅读 12 分钟
名为编译器的内置函数用于将编程语言代码翻译成计算机语言,以便解释器可以运行它。在 Python 中,.py 源文件被转换为 .pyc 字节码,然后发送给解释器进行处理。存在以下可能性...
阅读 4 分钟
在本教程中,我们将演示不同的基于 Python 的方法,用于将多个 CSV 数据合并或组合到一个文件中(此方法也适用于文本文件和其他类型的文件)。还将有一个额外课程,介绍如何快速合并多个 CSV 文件,以……
阅读 3 分钟
Python 中的应用开发技术正在迅速发展。因此,智能手机、人工智能和其他设备将逐渐进步。然后,为了将这些技术付诸实践,我们开发了各种工具,包括由编程语言运行的移动应用程序。Python 编程语言是其中之一...
阅读 6 分钟
在下一个教程中,我们将通过 Python 中的 Semaphore 来理解多线程同步。让我们开始理解。理解 Semaphore Semaphore 是一种同步构造。Semaphore 为线程提供了对有限数量资源的同步访问。Semaphore 可以被视为一个...
阅读 4 分钟
Python 是脚本语言的定义,可以以多种方式使用。脚本语言 Python 使用许多解释器,每个解释器都不同。由于它将是 2023 年增长最快的编程语言,因此有大量的 Python 解释器可用......
阅读 12 分钟
OpenWeatherMap 确实是一项为 Web 服务和移动应用程序的开发者提供天气信息的服务,包括当前天气信息、预报和历史数据。它提供有限的免费使用层以及具有 JSON、XML 和 HTML 端点的 API。用户可以...
阅读 3 分钟
简介:在本教程中,我们将讨论如何在 Spark 中将一个函数应用于 csv 的单个列。在分布式计算系统中,Spark 被用作一个开源系统。Spark 用于大规模数据处理,并且非常...
阅读 3 分钟
在本教程中,我们将学习如何使用 Python 脚本创建浅拷贝和深拷贝。通常,我们使用 =(赋值运算符)来创建 Python 对象的副本。让我们了解与在 Python 中创建副本相关的完整概念。拷贝在...
5 分钟阅读
二进制语言是计算机的语言。计算机的所有内部机制都与位有关。位运算符是允许程序员对整数执行位操作的一组运算符。这些运算符允许程序员操作较低级别的数据,在...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India