2

我希望能够创建一个远程客户端可以通过网络查看的 GUI。

一种方法是用 HTML5 对整个 GUI 进行编码,然后在 Apache 等服务器上运行它;这样做的主要困难是 GUI 至少包括一个,有时是两个,包含实时视频流(没有任何声音)的窗口,并且似乎没有一种将实时视频流式传输到 HTML5 的好方法 - 特别是因为它确实需要活着;几秒钟的延迟是不可接受的。

另一种方法(我已经做过,实际上效果很好)只是将 GUI 编码为桌面应用程序(例如使用 Qt),然后使用 VNC 或 Windows 远程桌面远程查看桌面。这提供了所需的响应能力和无延迟,但缺点是整个操作系统桌面都可以访问,而不仅仅是我的一个应用程序。

所以,这是我的问题:是否有可用的机制或框架使我能够使用 RFB(即底层 VNC 协议)或 RDP(底层 Windows 远程桌面)来提供对单个 GUI 应用程序的远程访问,而不是整个桌面?

4

1 回答 1

1

当我们比较 RDP 和 RFB 时,主要的区别是 RDP 只共享元数据,而 RBF 共享屏幕的整个帧缓冲区。所以RBF比RDP慢。VNC 使用 RFB,而 Lync 等 Windows 应用程序使用 RDP。

http://sandaruwmp.blogspot.com/2014/05/remote-desktop-application-with-rdp.html这里可以看到一个简单的RDP示例

实际上,您可以创建一个仅共享一个应用程序的应用程序,也可以将许多其他协议与 RDP 一起使用

这里https://github.com/sandaru/RDAPP在这个应用程序中它使用带有 TCP 的 RDP,您只能选择一个应用程序来显示。

在此应用程序中,它通过 RDP 共享桌面并侦听 TCP 端口,您可以发送诸如“停止选定进程”、“聚焦单个应用程序”和“共享整个窗口”之类的命令。RDP 根据 TCP 请求做出反应。

我希望这对你有用

注意:上述源不包含任何 NAT 遍历机制。

于 2014-09-04T10:27:51.057 回答