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