python socket 大文件_python之socket运用之传输大文件
时间: 2023-07-31 10:11:28 浏览: 120
当我们需要在网络上传输大文件时,使用Python的socket模块可以是一个很好的选择。下面是一个简单的示例代码,可以将一个大文件从服务器发送到客户端:
服务端代码:
```python
import socket
HOST = '0.0.0.0'
PORT = 5000
def send_file(conn, filename):
with open(filename, 'rb') as f:
data = f.read(1024)
while data:
conn.send(data)
data = f.read(1024)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen(1)
print('Listening on port', PORT)
conn, addr = s.accept()
print('Connected by', addr)
send_file(conn, 'big_file.txt')
```
客户端代码:
```python
import socket
HOST = '127.0.0.1'
PORT = 5000
def receive_file(conn, filename):
with open(filename, 'wb') as f:
data = conn.recv(1024)
while data:
f.write(data)
data = conn.recv(1024)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
receive_file(s, 'big_file.txt')
```
在服务端代码中,我们打开要发送的文件,然后将其分块读入,每次读入1024字节,并将其发送到客户端。
在客户端代码中,我们连接到服务器,然后将接收到的数据写入到文件中。
需要注意的是,这个示例代码没有进行任何错误处理和异常处理。在实际应用中,我们还需要对网络连接和文件操作进行一些错误处理和异常处理。
阅读全文