You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否实现Unix域套接字无读取端持续发数据及先产后消传输?

用Unix套接字实现先发送后接收?改用UDP方案实现直播流推送

需要用Unix套接字连接两个进程:推送直播视频流的生产者,以及读取处理视频流的消费者。原本设想让生产者持续向套接字写入数据,等消费者就绪后再开始读取,但使用AF_UNIX套接字时,无法在接收套接字创建前启动发送端,请问该功能是否可以实现?

这种先发送后接收的非阻塞发送行为无法通过AF_UNIX套接字实现,但可以通过AF_INET套接字的UDP通信达成:生产者可立即持续发送数据,消费者按需启动后再接收。

生产者代码(sender.py)

import socket
import time

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = ('localhost', 10000)

try:
    # 持续发送数据
    i = 0
    while True:
        msg = f"message: {i}"
        sent = sock.sendto(bytes(msg, encoding="ascii"), server_address)
        print(f"已发送 {sent} 字节 - {msg}")
        i += 1
        time.sleep(0.05)

finally:
    print('关闭套接字')
    sock.close()

消费者代码(receiver.py)

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = ('localhost', 10000)

sock.bind(server_address)

try:
    while True:
        data, address = sock.recvfrom(4 * 1024)
        print(f"已接收 {data}")
except KeyboardInterrupt:
    pass
finally:
    sock.close()

内容的提问来源于stack exchange,提问作者IvanProsperi94

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 17:12:14