实现文件传送器基于python的代码
时间: 2023-12-29 17:03:51 浏览: 30
下面是一个基于 Python 的简单文件传输程序的代码示例:
服务端代码:
```python
import socket
# 创建 TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定到本地主机与端口
server_address = ('localhost', 10000)
print('启动服务端在 {} 端口'.format(server_address))
sock.bind(server_address)
# 监听传入连接请求
sock.listen(1)
while True:
# 等待连接
print('等待客户端连接...')
connection, client_address = sock.accept()
print('客户端已连接:', client_address)
try:
# 接收/发送数据
while True:
data = connection.recv(1024)
if data:
print('接收到数据 "{}"'.format(data.decode('utf-8')))
connection.sendall(data)
else:
print('客户端关闭连接')
break
finally:
# 清理连接
connection.close()
```
客户端代码:
```python
import socket
# 创建 TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务端
server_address = ('localhost', 10000)
print('连接到 {} 端口'.format(server_address))
sock.connect(server_address)
try:
# 发送数据
message = '这是客户端发送的数据'
print('发送数据 "{}"'.format(message))
sock.sendall(message.encode('utf-8'))
# 接收数据
data = sock.recv(1024)
print('接收到数据 "{}"'.format(data.decode('utf-8')))
finally:
# 清理连接
sock.close()
```
这是一个非常基本的示例,只能传输小型文件。要实现更高效的文件传输,需要使用更复杂的技术和协议,例如使用 UDP 协议,或者采用分块和校验和等方法来处理大型文件。