我计划开发一个远程桌面系统,包括:

  1. 可以抓取并显示屏幕的桌面应用程序
  2. 建立对等连接的服务器,为对等提供 STUN/TURN NAT 穿越技术
  3. 基于 Web(Java 小程序或 Silverlight)的应用程序,从浏览器运行并允许用户查看/控制远程桌面。

我的观点是 - 该系统的最佳编码协议是什么?我推迟了 VNC,它是二进制的,而且还不够 - 我需要 ie 的更多功能。NAT穿越。它必须能够轻松地用 C++ 开发桌面和服务器,并用 Java/.NET 开发基于 Web 的应用程序。我正在考虑通过 HTTP(S) 进行 XML,但我想知道如何有效地对二进制数据进行编码,因为必须传输大量的二进制数据(捕获的桌面图像编码为 bmp/jpg 等)。

有什么提示吗?

谢谢

有帮助吗?

解决方案

我认为你混淆了一些概念。VNC 实际上做了您想要做的事情,它唯一缺少的是 NAT 穿越。但 NAT 穿越不是任何协议的责任(据我所知)。尽管如此,没有什么可以阻止您在 VNC 连接打开之前创建 NAT 遍历。

使用 HTTP(S) 上的 XML 来绕过防火墙是一种巨大的杀伤力。这种方法的主要问题是 TCP 连接不适合视频传输等实时应用程序,并且 xml 数据不是二进制的!我认为使用这种方法,你的杀手级应用程序将永远不会启动。

为什么要重新发明轮子而不使用 RTP/RTCP + Udp 打孔?关于该主题有大量(不可读)文档,据我所知,Java Applet 可以发送/接收 UDP 数据包。您唯一需要实现的是视频/音频/事件的编码(VNC 已经做了,RFB 协议!)

希望有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top