2011-06-20 52 views
0

我正在寻找通过远程桌面连接连接到另一台计算机的代码,并检查连接是否成功。C++的RDP协议

I包记录,发现有包的一个星系的价值,所以我想知道,如果有一些简单的代码在那里。

+0

你的问题根本没有意义。 RDP是一个协议,是两个节点之间的一组通信规则。消息控制的处理通常由OSI模型的第4级的TCP等协议处理。 RDP是一个应用层协议,它不需要担心连接等问题。 –

+0

好吧,TCP上面有一大堆(至少TPKT,X.225和ROSE),RDP不直接位于TCP。如果您想使用RDP进行通信,则必须实现所有这些层(禁用OS支持的层) – nos

回答

3

真的是没有什么容易的约RDP,该协议栈是巨大的,建立在ITU OSI协议,其中包括ASN.1/BER相当数量。

最好的办法是,在FreeRDP的代码。

0

您是否需要检查RDP服务器是否存在但未通过身份验证?在这种情况下,所有你需要的是用于协商协议安全性的第一对数据包。你可以在FreeRDP中找到libfreerdp-core/nego.c中的代码。

0

@ Blanker1231:您应该看看rdesktop code,它的c语言,但可以非常容易地修改以用于C++代码,您所要做的就是有效地桥接它们的Struct Stream。

此外,我已经在qt/C++ for a中工作过很久以前的Rdp 7+实现,所以最近只是为了它的乐趣,我使用了我所有的经验并编写了一个RDP解析器和代码生成器,并在https://github.com/shashanksingh/Code-Generator-for-RDP 现在它很简单,我仍然在努力工作,它更聪明。谨慎的话它不会产生一切。例子包括demo.def,它在编译时会生成ms-rdp中使用的所有类ms-fscc @ Blanker1231如果您感觉像是分叉执行并开始推送内容

1

一些术语:想要一个“用于C++的RDP客户端库”。

正如其他人所提到的,查看“FreeRDP”和“rdesktop”项目。

有了FreeRDP,你将得到一套图书馆(每一个都是这样做的)。使用rdesktop,你将得到一个客户端应用程序(你必须打破C代码,并“建立”你的C++ API)。

如果这是一个新项目,我会选择FreeRDP over rdesktop,因为他们的C++接口已经有可用的库。