是否有任何库可以通过 Linux 中的远程桌面协议 (RDP) 作为客户端连接?使用的语言是次要的存在问题。任何主流语言都可以(例如 C++、Perl、Java、Ruby、PHP、Python),甚至像 OCaml 或 Scheme 这样不太流行的语言。
除了获取 rdesktop 源并从中破解库之外,还有其他选择吗?
是否有任何库可以通过 Linux 中的远程桌面协议 (RDP) 作为客户端连接?使用的语言是次要的存在问题。任何主流语言都可以(例如 C++、Perl、Java、Ruby、PHP、Python),甚至像 OCaml 或 Scheme 这样不太流行的语言。
除了获取 rdesktop 源并从中破解库之外,还有其他选择吗?
在我的 Mandriva 软件管理工具中输入 rdp 会显示 libxrdp,它是 xrdp 所依赖的库,但我不知道详细信息,因此它可能不是您想要的。
项目网站是xrdp.sourceforge.net。
FreeRDP 项目中有一组跨平台的开源 RDP 库。它们是用 C 和 Apache 许可证 2.0 编写的。请参阅http://www.freerdp.com
你可以看看这些实现:
FreeRDP
(Apache 许可证) - 主要是C
.FreeRDP
C#
绑定FreeRDP-WebConnect
对于 HTML5 的东西rdesktop
(GPLv2) - 主要是C
.rdpy
(GPLv3) -python
但是位图的东西是用写的C
(借用代码rdesktop
)properJavaRDP
(GPL) -java
不可移植的实现:
以及参考文件:
rdesktop 将是您的最佳选择。代码很干净,我不认为制作一个库是什么大不了的事。
如果您更喜欢 Java,另一个选择是 ProperJavaRDP 客户端 http://properjavardp.sourceforge.net/。它几乎是 rdesktop 的海峡港口。
抱歉,但 rdesktop 的快速 strace 和 nm 显示除了 X、加密和压缩库之外什么都没有。
rdesktop
确实允许嵌入到其他窗口中,它如何不符合您的目的?
查看-X
帮助中的选项
您可以根据 J-16 SDIZ 的建议将 rdesktop 嵌入到您自己的窗口中,然后以编程方式将 X.org 事件发送到该窗口。类似的方法是在 Windows 机器上安装 VNC 服务器并在 Linux 机器上运行 VNC 客户端。这样,您还可以以编程方式将 X.org 事件发送到 VNC 客户端。
这就是 browsershots.org 用来通过 Python 以跨平台方式以编程方式控制各种 Web 浏览器的方法。如果是browsershots.org 客户端源代码,请查看gui
目录
我已经让 xrdp 在 EC2 上与 RHEL 一起工作:xrdp.org