[英]How to solve this simple one-way local machine messaging problem
我在 Python 3.10 中有一個第一個發送者腳本,它需要發送一些數據
def post_updates(*args):
sender.send_message("optional_key", args)
然后是 Python 3.7 中的第二個接收腳本,它需要接收此數據
while True:
args = receiver.get_message("optional_key", blocking=True)
print("args received:", args)
約束:
這個簡單問題是否有 1-liner 解決方案? 我查找的所有內容似乎都過於復雜或需要事先啟動 TCP 服務器。 我不介意安裝流行的模塊。
UDP 和 JSON 看起來非常適合您的要求,只要
Python 的標准庫擁有您需要的一切。 從 JSON 編碼和解碼就像json.dumps()
和json.loads()
一樣簡單。 對於發送和接收,我建議遵循Python wiki 上的示例。 您需要先創建套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
無論您是發送者還是接收者。 接收者然后需要綁定到本地端口來收聽它:
sock.bind(('127.0.0.1', PORT))
然后發送方使用sock.sendto()
發送,接收方使用sock.recvfrom()
() 接收。
好的舊管道可能會完成這項工作,但您需要評估需要多大的緩沖區大小(考慮到發送方/接收方的異步性質),並更改默認的管道緩沖區大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.