实现 Python 局域网发送文件
引言
在实际工作中,局域网之间发送文件是一项常见的任务,尤其对于开发人员来说,需要将代码或者文件快速传输给同事或者测试机器,因此学会如何在局域网中发送文件是一项非常实用的技能。本文将教会你如何通过 Python 实现局域网发送文件的功能。
整体流程
下面是整体的发送文件流程,可以用表格展示:
步骤 | 描述 |
---|---|
1 | 创建服务器端接收文件 |
2 | 创建客户端发送文件 |
3 | 连接服务器和客户端 |
4 | 发送文件 |
实现步骤
步骤1:创建服务器端接收文件
首先,我们需要创建一个服务器端来接收文件。下面是代码示例:
# 导入 socket 模块
import socket
# 创建 socket 对象
server_socket = socket.socket()
# 获取本地主机名
host = socket.gethostname()
# 设置端口号
port = 12345
# 绑定端口号
server_socket.bind((host, port))
# 开始监听
server_socket.listen(5)
print("等待客户端连接...")
上面的代码中,我们通过创建一个 socket 对象,并指定了端口号来创建服务器端,并且开始监听是否有客户端连接。
步骤2:创建客户端发送文件
接下来,我们需要创建一个客户端来发送文件给服务器端。下面是代码示例:
# 创建 socket 对象
client_socket = socket.socket()
# 获取服务器端的主机名
host = socket.gethostname()
# 设置端口号
port = 12345
# 连接服务器端
client_socket.connect((host, port))
# 打开文件
file = open('example.txt', 'rb')
# 读取文件内容
data = file.read(1024)
# 发送文件内容
while data:
client_socket.send(data)
data = file.read(1024)
# 关闭文件
file.close()
在上面的代码中,我们创建了一个客户端 socket 对象,并连接到服务器端,然后打开文件,逐步读取文件内容并发送给服务器端。
步骤3:连接服务器和客户端
接下来,我们需要让服务器端和客户端进行连接。在服务器端代码中加入以下代码:
# 接受客户端连接
client_socket, addr = server_socket.accept()
print("连接地址: ", addr)
这样就实现了服务器端和客户端的连接。
步骤4:发送文件
最后,我们可以在服务器端接收文件内容并保存。在服务器端代码中添加以下代码:
# 打开(或创建)一个文件
file = open('received_file.txt', 'wb')
# 接收文件内容
data = client_socket.recv(1024)
while data:
file.write(data)
data = client_socket.recv(1024)
# 关闭文件
file.close()
这样,服务器端就可以接收到客户端发送的文件并保存在本地。
类图
classDiagram
class Server {
- server_socket: socket
- host: str
- port: int
+ start_listening()
}
class Client {
- client_socket: socket
- host: str
- port: int
+ connect_to_server()
+ send_file()
}
class File {
- file_name: str
- data: bytes
+ open_file()
+ read_data()
+ write_data()
+ close_file()
}
Server --> Client
Client --> File
通过上述类图,展示了服务器端、客户端和文件三者之间的关系。
结语
通过本文的介绍,你学会了如何通过 Python 在局域网中发送文件。这对于实际工作中的文件传输会非常有帮助。希望本文能够帮助到你,加深对 Python 网络编程的理解。如果有任何疑问,欢迎随时联系我。