为了账号安全,请及时绑定邮箱和手机立即绑定

Windows机器上UI和Core之间的通信

Windows机器上UI和Core之间的通信

Go
慕妹3146593 2022-01-10 17:20:18
我正在开发一个基于 GUI 的应用程序,它是使用 python 和 go 开发的。我正在使用 python(+Kivy) 来实现 UI,并使用 Go 在 Windows 操作系统上实现中间件/核心。我的问题陈述是:1)我想在启动应用程序时运行核心的 exe,它应该保持在后台,直到我的应用程序关闭。2) 当应用程序触发事件时,向内核发送命令,内核轮流在远程设备上执行命令并返回命令执行结果。我想知道,我如何控制 exe 的生命周期以及如何在 UI 和 Core 之间建立通信。有任何想法吗!!
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

有很多方法可以解决这个问题,但我建议将其中一个部分(GUI/Core)作为执行所有初始化并启动另一部分的主要应用程序。我建议为此使用核心。

这是您可以使用的示例架构,尽管您选择的架构高度依赖于应用程序和您的目标。

核心首先运行,执行初始化操作,包括启动 GUI,设置 GUI 之间的通信(使用管道、套接字等),然后等待来自 GUI 的命令。如果 GUI 发出关闭信号,核心可以执行任何必要的清理操作,然后退出。在这种情况下,exe 的生命周期由 GUI 控制。(当用户点击退出按钮时,GUI 会向核心发送一个信号,让核心知道它应该退出)

如果内核启动 GUI,那么它可以为其设置 STDIN/STDOUT 管道并在 STDOUT 上侦听命令,同时在 STDIN 上发送结果。您还可以采用服务器方法,让核心在套接字上侦听,GUI 向它发送请求并等待响应。使用服务器方法,您可以拥有与串行管道不同的某种并发性,但我认为它可能比管道慢(差异可能可以忽略不计,但如果不知道您到底在做什么,很难说)。


查看完整回答
反对 回复 2022-01-10
  • 1 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号