有人知道天气VNC(RFB)像在RDP(Microsoft Terminal Services)中一样支持虚拟频道和附加渠道吗?我只想将自己的数据传输到VNC连接上...

有帮助吗?

解决方案

不幸的是,VNC/RFB没有虚拟通道。

这是我发现RFB协议的最佳参考: http://tigervnc.org/cgi-bin/rfbproto

在不了解您要发送的内容以及哪个方向的情况下,想到了一些选择:

  • 紧密编码具有文件传输支持。在此处进行完整的紧密编码的格式规范较差: http://vnc-tight.svn.sourceforge.net/viewvc/vnc-tight/trunk/doc/rfbtight.odt?revision=3619

  • 如果您同时控制了客户端和服务器,则可以定义一个允许您发送数据的自定义编码。客户端将宣传它支持编码,如果服务器支持它,则它将开始使用它。

  • 您可以使用剪贴板消息(clientcuttext和servercuttext),如果您需要发送二进制数据来创建自定义数据,将数据编码为ISO 8859-1(Latin-1)。缺点是,如果服务器不支持它并且客户端将其粘贴到服务器的数据发送。

  • 如果您只需要从服务器发送到客户端,则可以使用framebufferupdate消息,该消息在当前视口之外发送数据(即123个像素在视口右侧)。不过,没有支持的客户可能无法很好地处理这一问题。

  • 另一个选项,如果您只需要从服务器发送到客户端,则可以使用特殊标记在视口内发送Framebufferupdate,然后立即使用真实的可见数据发送framebufferupdate(甚至在同一数据包中)来替换它。这将与现有客户(更多开销)一起使用。客户可能会看到简短的闪烁。

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