创建收发文件的服务器端 客户端,<TCP/IP网络编程> Chap.5 基于TCP的服务器端/客户端(2)...
时间: 2024-03-08 15:46:37 浏览: 75
好的,我了解你的问题。下面是一个基于TCP的服务器端/客户端的实现示例,可以用于收发文件。
服务器端实现:
```python
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 8000))
server_socket.listen(1)
while True:
print('Waiting for client connection...')
conn, addr = server_socket.accept()
print('Connected by', addr)
with open('received_file.txt', 'wb') as f:
while True:
data = conn.recv(1024)
if not data:
break
f.write(data)
print('File received successfully')
conn.close()
```
客户端实现:
```python
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 8000))
with open('file_to_send.txt', 'rb') as f:
while True:
data = f.read(1024)
if not data:
break
client_socket.sendall(data)
print('File sent successfully')
client_socket.close()
```
在这个例子中,服务器端监听本地8000端口,并等待客户端连接。一旦客户端连接,服务器端开始接收客户端发送的数据,并将其写入到本地文件中。客户端打开本地文件,循环读取数据并发送到服务器端。当所有数据发送完毕后,客户端关闭连接。
需要注意的是,这个示例只能发送普通文本文件,如果需要发送二进制文件,需要对数据进行编码和解码。此外,还应加入一些错误处理代码,以确保在文件传输期间没有任何问题。
阅读全文