是否可以在沒有任何讀取對應項的情況下將數據連續發送到unix域套接字?

我需要用unix連接兩個進程sockets:一個流式傳輸視頻的生產者,一個應該讀取視頻并進行處理的消費者。

由于視頻流來自實時流,我最初考慮使用生產者進程將數據連續寫入套接字,然后消費者在準備好后開始消費。

然而,我無法用AF_UNIX sockets實現此行為,因為我無法在接收套接字存在之前啟動發送器。這真的可以實現嗎?

我想到的這種non-blocking發送行為可以通過AF_INET sockets(即UDP通信)來實現,在這種情況下,生產者可以連續寫入,讀者可以根據自己的意愿開始消費。以下是此功能的示例python代碼:發件人可以啟動,它將立即開始發送消息;然后可以在需要時啟動接收器。

# sender.py
import socket
import time

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

try:
    # Send data
    i = 0
    while True:
        msg = f"message: {i}"
        sent = sock.sendto(bytes(msg, encoding="ascii"), server_address)
        print(f"sent {sent} bytes - {msg}")
        i += 1
        time.sleep(0.05)

finally:
    print('closing socket')
    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"received {data}")
except KeyboardInterrupt:
    pass
finally:
    sock.close()

? 最佳回答:

UNIX域sockets是可靠的sockets,即使使用SOCK_DGRAM也是如此。只有當有人在另一端閱讀時,才能實現這種可靠性。

與此UDP相反的是“開火并忘記”,即不關心成功傳遞、消息順序或重復消息。

主站蜘蛛池模板: 亚洲一区二区观看播放| 免费无码毛片一区二区APP| 国产精品一区在线观看你懂的| 国产一区二区三区精品视频| 少妇精品无码一区二区三区| 国产福利电影一区二区三区| 精品一区二区ww| 亚洲福利秒拍一区二区| AV无码精品一区二区三区宅噜噜| 国产精品视频分类一区| 成人免费区一区二区三区| 精品综合一区二区三区| 中文乱码人妻系列一区二区| 亚洲AV福利天堂一区二区三| 国产在线观看一区二区三区精品| 国产一区二区三区四| 在线视频国产一区| 亚欧免费视频一区二区三区| 性色AV一区二区三区| 亚洲AV综合色一区二区三区 | 黑巨人与欧美精品一区| 久久亚洲日韩精品一区二区三区| 国产精品日本一区二区不卡视频 | 日本一区二区三区免费高清| 无码av免费一区二区三区试看| 国产一区二区内射最近更新| 国产视频一区在线观看| 亚洲一区二区三区自拍公司| 91福利国产在线观看一区二区| 亚洲第一区在线观看| 国产福利电影一区二区三区,日韩伦理电影在线福 | 成人欧美一区二区三区在线视频| 精品永久久福利一区二区| 久久精品亚洲一区二区三区浴池| 精品国产乱子伦一区二区三区| AV无码精品一区二区三区| 亚洲色一区二区三区四区| 久久一区二区三区精华液使用方法| 亚洲综合色一区二区三区| 国内精自品线一区91| 国产观看精品一区二区三区 |