python接收流式传输并返回流式传输
要接收流式传输,可以使用Python的socket模块。以下是一个简单的示例,它创建一个服务器,接收来自客户端的数据流,并将其打印出来:
import socket
HOST = '' # 本机地址
PORT = 12345 # 端口号
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
# 接收客户端连接
conn, addr = s.accept()
print('Connected by', addr)
# 循环接收数据
while True:
data = conn.recv(1024) # 每次接收1024字节
if not data: break
print(data)
# 关闭连接
conn.close()
s.close()
要返回流式传输,可以使用Python的yield语句来生成数据流。以下是一个简单的示例,它创建一个生成器函数,生成一个无限的数据流:
def generate_data():
i = 0
while True:
yield str(i).encode()
i += 1
此函数将生成一个无限的数据流,其中每个数据都是一个字符串,表示当前计数器的值。您可以使用它来返回数据流,如下所示:
import socket
HOST = '' # 本机地址
PORT = 12345 # 端口号
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
# 接收客户端连接
conn, addr = s.accept()
print('Connected by', addr)
# 循环发送数据
for data in generate_data():
conn.send(data)
# 关闭连接
conn.close()
s.close()
此函数将无限生成数据并发送到客户端,直到连接关闭。请注意,此示例仅用于演示目的,实际应用程序可能需要更复杂的数据流生成逻辑
原文地址: https://www.cveoy.top/t/topic/ferS 著作权归作者所有。请勿转载和采集!