问题
Are there any libraries for connecting as a client via Remote Desktop Protocol (RDP) in Linux? The language used is secondary to the issue of existence. Any mainstream language would do (e.g. C++, Perl, Java, Ruby, PHP, Python), and even less popular ones like OCaml or Scheme.
Is there any option available other than taking the rdesktop source and hacking a library out of that?
回答1:
There is a set of cross-platform open source RDP libraries available in FreeRDP project. They are written in C and under Apache Licence 2.0. See http://www.freerdp.com
回答2:
Typing rdp into my Mandriva Software Managment tool revealed libxrdp which is a library that xrdp depends on but I don't know the details so it may not be what you want.
The project website is xrdp.sourceforge.net.
回答3:
rdesktop is going to be your best option. The code is quite clean and I don't think making a library would be a huge deal.
Another option if you prefer Java is the ProperJavaRDP Client http://properjavardp.sourceforge.net/ . It's nearly a strait port of rdesktop.
回答4:
You can look at these implementations:
- FreeRDP (Apache License) - mostly
C
. - FreeRDP C# bindings
- FreeRDP-WebConnect for HTML5 stuff
- rdesktop (GPLv2) - mostly
C
. - rdpy (GPLv3) -
python
but bitmap stuff is written inC
(borrowing code fromrdesktop
) - properJavaRDP (GPL) -
java
Non portable implementations:
- Terminals (MS-CL) - visual studio project.
And the reference documents:
- http://msdn.microsoft.com/en-us/library/cc240445.aspx
- http://msdn.microsoft.com/en-us/library/cc240452.aspx (message flows / connection sequence)
回答5:
Sorry, but a quick strace and nm of rdesktop reveal nothing beyond X, crypto, and compression libs.
回答6:
rdesktop
does allow embedding into other windows, how does it not serve your purpose?
See the -X
option in help
回答7:
You could embed rdesktop in a window of your own per J-16 SDIZ's suggestion and then send X.org events to that window programmatically. A similar route would be to install a VNC server on the Windows machine and run a VNC client on the Linux machine. That way you can also programmatically send X.org events to the VNC client.
This is what browsershots.org uses to programmatically control various web browsers in a cross-platform way through Python. Have a look at the gui
directory if the browsershots.org client source code
回答8:
I've gotten xrdp to work with RHEL on EC2: xrdp.org
来源:https://stackoverflow.com/questions/1071508/does-an-rdp-client-library-under-linux-exist