不幸的是,VNC/RFB没有虚拟通道。
下面是我找到的关于RFB协议的最好参考:http://tigervnc.org/cgi-bin/rfbproto
在不了解更多关于您尝试发送的内容和方向的情况下,脑海中会浮现以下几个选项:
- 紧凑编码支持文件传输。对于完整的紧密编码,这里有一个格式不佳的规范:http://vnc-tight.svn.sourceforge.net/viewvc/vnc-tight/trunk/doc/rfbtight.odt?revision=3619
- If您可以同时控制客户端和服务器,然后您可以定义一个允许您发送数据的自定义编码。客户端将通告它支持这种编码,如果服务器支持它,那么它将开始使用它。
- 你可以使用剪贴板消息(ClientCutText和ServerCutText),如果你需要发送二进制数据来创建自定义编码为ISO8859-1(
- -1)的数据。缺点是如果服务器不支持它,而客户端发送的数据将被粘贴到服务器。
- 如果你只需要从服务器发送数据到客户端,那么你可以使用framebufferUpdate消息在当前视区之外发送数据(即视区右侧以外的123像素)。没有支持的客户端可能不能很好地处理这个though.
- Another选项,如果您只需要从服务器发送到客户端,就是您可以在视口中发送一个带有特殊标记的framebufferUpdate,然后立即发送一个带有真实可见数据的framebufferUpdate (即使在同一个包中)来替换它。这将适用于现有的客户端(更多的开销)。但客户端可能会看到短暂的闪烁。