1

我正在编写一个 RFB 服务器。我想知道是否有人知道 RFB 参考客户端。

目前,我运行 RealVNC 并要求它连接到我的 RFB 服务器,它工作正常。但是,RealVNC 旨在提供良好的最终用户体验。它并不打算测试协议功能的每一种可能的有效组合。所以我知道 RealVNC 使用的功能是正确实现的,但我不知道 RealVNC 不使用的功能是否完全有效。但是,如果我能以某种方式进行检查,那将非常有用。

有什么建议么?

(当然,我也可以编写自己的 RFB 客户端。但这并不能证明任何事情。如果某些东西不起作用,我无法判断是客户端还是服务器坏了。如果一切正常工作,这仍然不意味着两端都正确实现了 RFB,只是每个都有与另一个相同的错误。)

4

1 回答 1

0

这可能会对您有所帮助。我曾经使用 TCP/IP builder 来制作各种十六进制代码消息(指针事件、键事件、剪切文本)将它们存储在文本文件中。现在我用来连接 tcp/ip builder 和我的 rfb/vnc 服务器。

您编写的 RFB 服务器现在将像任何 RFB 客户端一样响应此 TCP/IP 构建器,您现在可以验证每个场景(不完整的有效负载、错误的消息编号、额外的有效负载、消息乱序等)

如果您的服务器在连接到服务器后没有响应 rfb 版本号信息,请确保选择“Parse Ascii”选项。

为了生成初始消息,您可以记录 Wireshark 日志,以便在您的 rfb 服务器和真正的 vnc 之间成功进行正确的 rfb 会话,然后使用这些消息通过 TCP/IP 构建器测试您的 RFB 服务器。

RFB 版本信息可以像这样 "RFB 003.008" 发送,但是对于消息的其余部分,您将不得不使用十六进制符号,就像看到的网络日志 (pcap/wireshark)

示例:这是如何将帧缓冲区请求消息发送到您的服务器(800 x 480 非增量)

0x030x000x000x000x000x000x030x200x010xe0

于 2014-03-18T07:36:14.103 回答