Go 如何在两个围棋程序之间进行通信?
有三个围棋程序,它们是围棋程序1,围棋程序2,围棋程序3 围棋程序1 从串行端口获取数据并发送到Go程序2 围棋项目2 记录。从Go程序1获取数据并将其发送到MQTT 围棋项目3 它应该是web框架,因为我需要web UI来控制和管理这些GO程序1和GO程序2 Go Program 3任务包括:Go 如何在两个围棋程序之间进行通信?,go,Go,有三个围棋程序,它们是围棋程序1,围棋程序2,围棋程序3 围棋程序1 从串行端口获取数据并发送到Go程序2 围棋项目2 记录。从Go程序1获取数据并将其发送到MQTT 围棋项目3 它应该是web框架,因为我需要web UI来控制和管理这些GO程序1和GO程序2 Go Program 3任务包括: 启动和停止GO程序1和2 更改或设置Go程序1的COM端口并发布主题 更改Go程序2的代理地址、用户名和密码 如何在所有三个GO程序之间进行通信或管道。查看评论中的讨论,我认为您假设GO对IPC有一
- 启动和停止GO程序1和2
- 更改或设置Go程序1的COM端口并发布主题
- 更改Go程序2的代理地址、用户名和密码
如何在所有三个GO程序之间进行通信或管道。查看评论中的讨论,我认为您假设GO对IPC有一些Python没有的特殊方式;那不完全是真的。通道对于单个进程内的通信非常有用。如果你想让这些程序真正独立(进程),你需要所有常用的IPC——你可以使用管道、套接字、共享内存,或者你拥有的任何东西 我个人建议使用socket,因为Go非常适合网络编程和编写socket服务器和客户端。此外,一旦应用程序使用套接字,就可以更轻松地将这些不同的进程移植到多台计算机上、跨internet等运行。此外,您还可以利用更高级别的协议级别并使用诸如RPC之类的东西
要创建套接字服务器,请使用
net.Listen
,并在返回对象的循环中调用Accept
。Accept
返回的每个连接都是可以与之通信的远程客户端-如果您希望多个客户端之间的并发性,我建议在这里使用goroutine
然而,对于像您这样的项目的第一个切入点,我会选择使用非常简单的
net/rpc
包,它为向其他进程发送远程命令提供了更高级别的API。当然,可以在两个go程序之间建立通信。有很多方法可以做到这一点。你试过什么?显示您的代码。您遇到了什么问题?请编辑问题,将其限制在一个特定的问题上,并提供足够的详细信息,以确定适当的答案。@Flimzy我已经在python中使用flask完成了这项工作,现在我正在尝试在Go@Arvindh:那很好,所以你知道基本原则。但你仍然没有回答一个基本的问题:你尝试了什么?包括您的代码。@Flimzy我不知道如何在GOLANG中开始这个概念,在Python中我使用管道进行进程通信,但在GOLANG中我不知道如何使用通道与另一个正在运行的go程序通信。