要接收流式传输,可以使用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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录