使用 Python 通过 TCP Socket 进行文件传输2025 年 1 月 11 日 | 阅读 5 分钟 什么是 FTP(文件传输协议)?FTP(文件传输协议)是一种网络协议,用于在传输控制协议或协议/互联网协议(TCP/IP)连接上传输计算机之间的文件。在 TCP/IP 套件中,FTP 被视为应用层协议。在 FTP 传输中,终端用户的计算机通常称为本地主机。参与 FTP 的第二个计算机称为远程主机,通常是服务器。两台计算机必须通过网络连接并进行适当配置才能通过 FTP 传输文件。服务器必须设置为运行 FTP 服务,并且用户必须安装 FTP 软件才能访问这些服务。 虽然许多文件传输可以使用超文本传输协议(HTTP)—— TCP/IP 套件中的另一个协议——来完成,但 FTP 仍通常用于在后台为各种应用程序(如金融服务)传输文件。有时也用于通过互联网浏览器下载新应用程序。FTP 是一种标准网络协议,可以实现跨 IP 网络的广泛文件传输功能。没有 FTP,文件和数据传输可以通过其他网络进行——例如,电子邮件或 HTTP Web 服务——但这些其他选项缺乏 FTP 所提供的专注性、准确性和控制力。 FTP 用于在系统之间传输文件,并且有一些常见用例,包括以下:
TCP-SERVER.py:服务器端实现我们首先导入 socket 库并创建一个简单的套接字。AF_INET 指的是地址族 ipv4。SOCK_STREAM 表示面向连接的 TCP 协议。之后,我们将主机地址和端口号绑定到服务器。 客户端输入所需的最大客户端连接数。根据输入,我们确定存储客户端的数组的大小,称为 Connections。然后,服务器继续监听客户端连接,如果找到,则将它们添加到 Connections 数组中。它这样做直到 Connections 数组达到其最大容量。然后,对于每个连接,开始处理。
TCP-server.py 代码 TCP-CLIENT.py:客户端实现我们首先为客户端创建一个套接字,并使用包含主机地址和端口号的元组将其连接到服务器。然后,客户端输入它需要发送到服务器的文件名。之后,使用 Python 的 open() 函数读取文件的内容。数据逐行读取,然后编码为二进制并通过 socket.send() 发送给服务器。发送数据完成后,文件被关闭。它会一直请求文件名,直到客户端连接被终止。 代码 输出 我们首先使用命令运行服务器。 python tcp-server.py ![]() 服务器端结果 之后,我们指定可能的最大客户端连接数。
python tcp-client.py 我们可以在终端中运行该命令的最大标签数是 2。因为我们正在使用此来初始化我们的客户端。所以我们创建两个客户端 Client 1 和 Client 2。 ![]() 客户端结果 当客户端运行时,我们在服务器端看到“已连接客户端 1”的结果,表明与第一个客户端的连接已成功完成。第二个客户端也是如此。 之后,在客户端,我们提供要发送的文件名。这里 file1.txt 由两个客户端发送。file1.txt 的内容显示如下。 ![]() 发送到服务器的文件 请注意,在客户端,我们继续显示提示:“输入您要发送的文件名:”,以便客户端可以发送多个文件。当客户端连接断开时,通过在终端中按“Ctrl+C”,在服务器端会生成一个名为 Output<a number>.txt 的新文件,其中包含相同的内容,然后关闭连接。在这里,Client 1 的文件存储为 Output0.txt,Client 2 的文件存储为 Ouput1.txt。 ![]() 从客户端 1 接收的文件 ![]() 从客户端 2 接收的文件 |
Bokeh 是一个用于数据可视化的 Python 库。它使用 HTML 和 JavaScript 语言创建其绘图,并且它还针对现代网站浏览器,以提供优雅的演示、新颖图形的简洁构建以及良好的高性能交互性。在本教程中,我们将学习如何...
阅读 2 分钟
Python (x,y) 是一款完全免费使用的工程和科学开发软件。Python (x,y) 软件用于数据分析、数据可视化和数值计算。Python (x,y) 基于 Spyder 交互式科学开发环境、Python 编程语言和 GUI(图形用户界面)...
阅读 4 分钟
在软件开发人员、工程师和数据科学家中,Python 是一种备受欢迎的编程语言。其广泛的库和模块集合使得处理数据、图形和用户界面变得简单。PyQtGraph 就是一个广受欢迎的用于开发交互式实时视觉效果和可视化内容的包。您将学习...
阅读 3 分钟
Python 中的 'and' 与 '&' 在以下教程中,我们将了解 Python 编程语言中 'and' 与 '&' 之间的区别。理解 Python 中 'and' 与 '&' 之间的区别 这些是我们用于 Python 的一些运算符;但是,有一个根本的区别...
阅读 3 分钟
Python 程序逆序打印双向链表 在本教程中,我们将编写 Python 程序来逆序打印链表。双向链表是创建一个循环链表的循环链表。为了解决这个问题,我们将使用...
7 分钟阅读
在数据科学和机器学习中,我们经常遇到一个术语,称为不平衡数据分布,通常发生在其中一个类别的观测值远高于或低于其他类别时。机器学习算法通常通过减少...来提高准确性。
11 分钟阅读
理解二维码 二维码是一种机器可读的条形码,以二维像素化形式设计。二维码可用于存储各种数据。“QR”是“快速响应”(Quick Response)的缩写。二维码于1994年由日本工程师原昌宏(Masahiro Hara)发明...
5 分钟阅读
医疗保健中的区块链:创新与机遇 随着医疗领域的巨大飞跃,它也向区块链和人工智能迈出了一大步。该行业引入了新技术,有助于使医疗保健行业更安全、更有保障且资源密集。涉及的公司...
阅读 17 分钟
我们可以通过多种方式对Python列表进行排序。有各种算法被设计用来对列表进行排序。对一维Python列表进行排序非常直接。它需要直接应用一种可用的算法。然而,给定一个嵌套的Python列表,基于什么...
阅读 6 分钟
Python 的 print() 函数用于将结果或输出打印到屏幕。默认情况下,它会在打印语句后跳转到新行。它有一个预定义的格式来打印输出。让我们通过以下示例来理解。示例 - 1 print("Welcome") print("To") print("JavaTpoint") 输出: Welcome To JavaTpoint 或者,我们可以写...
阅读1分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India