python tcp 循环接收文件
时间: 2024-12-21 21:05:53 浏览: 5
在Python中,你可以使用socket模块来创建TCP服务器,并通过循环来持续接收客户端发送的数据。这里是一个简单的例子,展示如何设置一个TCP监听服务,然后读取并处理接收到的文件内容:
```python
import socket
def receive_file(server_socket):
while True:
# 接收数据块,这里是4096字节大小的缓冲区
data = server_socket.recv(4096)
# 检查数据是否接收完成,如果没有则继续
if not data:
break
# 数据已经到达,可以在这里处理数据,例如解码成字符串
file_content += data.decode('utf-8')
# 收到所有数据后,关闭连接
server_socket.close()
# 创建一个TCP套接字
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP地址和端口
server.bind(('localhost', 12345))
# 开始监听连接
server.listen()
print("Server is listening...")
connection, client_address = server.accept() # 等待客户端连接
try:
# 调用函数开始接收文件
file_content = ''
receive_file(connection)
# 输出接收到的内容
print(f"Received file content: {file_content}")
except Exception as e:
print(f"Error occurred: {e}")
# 关闭套接字
server.close()
```
这个脚本会一直等待新的客户端连接,一旦有连接请求,它会进入一个无限循环,接收来自客户端的数据直到连接关闭。注意这只是一个基本示例,实际应用中你可能需要添加错误处理、文件保存等更复杂的功能。
阅读全文