亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

兩個 Go 程序之間如何通信?

兩個 Go 程序之間如何通信?

Go
胡子哥哥 2023-06-01 17:11:18
我正在嘗試制作這樣的程序一共有三個GO Porgram,分別是Go program 1, Go Program 2 , Go Program 3Go Program 1 從串口獲取數據并發送給 Go Program 2GO 計劃 2 Recv。來自 Go 程序 1 的數據并將其發送到 MQTTGO Program 3 它應該是 web 框架,因為我需要 Web UI 來控制和管理這些 GO program 1 & Go Program 2Go Program 3 的任務是:開始停止 GO 程序 1 和 2更改或設置 Go Program 1 的 COM 端口并發布主題更改Go Program 2的經紀人地址,用戶名和密碼如何在所有三個 GO 程序之間進行通信或管道。
查看完整描述

1 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

我認為您假設 Go 有一些 Python 沒有的特殊 IPC 方式;這不完全正確。通道對于單個進程內的通信很有用。如果您希望這些程序真正獨立(進程),您將需要所有常用的 IPC - 您可以使用管道、套接字、共享內存或其他任何東西。

我個人建議使用套接字,因為 Go 非常適合網絡編程和編寫套接字服務器和客戶端。此外,一旦您的應用程序使用套接字,就可以更輕松地將這些不同的進程移植到多臺機器上、跨 Internet 等運行。此外,您還可以利用更高級別的協議級別并使用諸如 RPC 之類的東西。


要創建套接字服務器,請使用net.Listen, 并Accept在返回的對象上循環調用。返回的每個連接Accept都是一個您可以與之通信的遠程客戶端——如果您想要多個客戶端之間的并發,我建議您在這里使用 goroutine。

然而,對于像您這樣的項目的第一次削減,我會選擇net/rpc使用起來非常簡單并提供更高級別的 API 來向其他進程發送遠程命令的包。


查看完整回答
反對 回復 2023-06-01
  • 1 回答
  • 0 關注
  • 332 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號