远程序桌面登录的.NET(C#)开发

摘要:
对于NET开发的远程程序桌面登录,可以使用两个转换的动态库MSTSCLib.dll和MsTscAxWrapper.dll来代替使用WINDOWS提供的OCX,因为使用OCX开发可能会遇到其他问题。RDP在TCP中封装和加密。远程桌面协议基于并是扩展T120系列的协议标准。此外,RDP被设计为支持各种不同类型的网络拓扑(如ISDN、POTS和多种LAN协议(如IPX、NetBIOS、TCP/IP等)。应用程序开发人员的关键点之一是,使用RDP,Microsoft具有立即抽象协议栈的复杂性。在本例中,RDP是在TCP/IP中开发的一个完全独立的基本传输堆栈。
远程序桌面登录的.NET开发,可以使用MSTSCLib.dll和MsTscAxWrapper.dll两个转换过的动态库,而无需使用WINDOWS自带的OCX,因为使用OCX开发可以会遇到其它问题。

     主要代码:

远程序桌面登录的.NET(C#)开发第1张远程序桌面登录的.NET(C#)开发第2张代码
public AxMSTSCLib.AxMsRdpClient rdpClient;   
  
rdpClient 
= new AxMSTSCLib.AxMsRdpClient();   
            rdpClient.Dock 
= DockStyle.Fill;   
  
            rdpClient.Width 
= Screen.PrimaryScreen.Bounds.Width;//控件宽度   
            rdpClient.Height = Screen.PrimaryScreen.Bounds.Height;//控件宽度   
            this.Controls.Add(rdpClient);   
            rdpClient.Server 
= this.StrIP;//服务器地址   
            rdpClient.UserName = this.StrName;   
            rdpClient.AdvancedSettings2.RDPPort 
= 3389;   
            rdpClient.AdvancedSettings2.ClearTextPassword 
= this.StrPwd;//密码   
            rdpClient.ColorDepth = 16;//颜色位数   
            rdpClient.FullScreen = true;//是否全屏   
  
 rdpClient.Connect();  

了解远程桌面协议 (RDP)
< type="text/javascript">

远程桌面协议 (RDP),用于终端服务器和终端服务器客户端之间的通信。RDP 被封装并在 TCP 加密。

远程桌面协议基于,并是对扩展 T 120 系列的协议标准。 多声道支持协议用于单独的虚拟通道储存的演示文稿数据、 串行设备通信,授权信息、 高加密的数据 (键盘、 鼠标活动) 等。 因为 RDP 是核心 T.share 协议的扩展,多个其他功能将保留作为 RDP,如体系结构支持多点 (多方会话) 所需要的功能的一部分。 multipoint 数据传递允许从应用程序在"实时多方传递而不必向单独 (例如,虚拟 Whiteboards) 的每个会话发送相同的数据的数据。

Windows 终端服务器此第一个版本中但是,我们将集中提供可靠而快速点对点单会话通信。 只有一个数据信道将可以中使用最初发布的终端服务器 4.0 但是,RDP 的灵活性未来的产品中提供大量的功能的空间。

Microsoft 决定实现 RDP 连接用于 Windows NT 终端服务器中的一个原因是它提供用于生成许多更多的功能非常可扩展基础。 这是因为 RDP 用于数据传输 64,000 独立的通道。 但是,当前传输活动只使用单个频道 (对于键盘、 鼠标和演示文稿数据)。

而且,RDP 旨在支持多种不同类型的网络拓扑 (例如 ISDN、 POTS 和多个的 LAN 协议 (如 IPX、 NetBIOS、 TCP/IP,等)。 当前版本的 RDP 将只运行 TCP/IP 上,但客户反馈的其他协议支持可以添加在将来版本。

参与发送和接收数据通过 RDP 堆栈活动实质上是作为七层 OSI 模型标准公共 LAN 网络现在相同的。 数据从应用程序或服务传输经过下协议堆栈 sectioned、 定向到一个通道 (通过 MCS)、 加密、 换行,帧、 打包到在的网络协议和最后解决,会上传送缆线到客户端。 返回的数据相同方式仅中有效反向,使用数据包被去除的它的地址,然后 unwrapped 解密,依此类推直到数据提供给应用程序使用。 协议堆栈修改关键部分发生第四个和第七个层,其中数据的加密、 换行和帧、 定向到一个通道和确定优先级别之间。

为应用程序开发人员的要点之一是,使用 RDP,Microsoft 有抽象立即处理该协议栈的复杂性。 这样,他们只需编写干净的、 精心设计、 良好 32 位应用程序并且 RDP 堆栈由终端服务器和它的客户端连接实现负责其余工作。

有关应用程序在终端服务器上的交互方式以及要注意开发用于 Windows 终端服务器基础结构的应用程序时的详细信息,查看"优化 Windows NT Server 4.0,终端服务器版的应用程序"白皮书。 值得讨论 RDP 堆栈实例中的四个组件是 multipoint 的通信服务 (MCSMUX)、 泛型的会议控制 (GCC)、 Wdtshare.sys 和 Tdtcp.sys。 MCSmux 和 GCC 都在国际电信联合 (ITU) T 120 系列。 MCS 由两种标准组成: 它定义了多点服务的 T.122 和指定数据传输协议的 T.125。 MCSMux 控制通道 (由到协议中的预定义虚拟通道的 multiplexing 数据) 的工作分配、 优先级和分段发送的数据。 实质上,提取多个的 RDP 堆栈到单个实体从该 GCC 的角度。 GCC 负责管理这些多个频道。 在 GCC 允许创建和删除会话连接和控件资源提供 MCS。 每个终端服务器协议 (当前,唯一的 RDP 和 Citrix 的 ICA 支持) 将有一个协议堆栈实例加载 (等待连接请求一个侦听程序堆栈)。 终端服务器设备驱动程序协调和管理 RDP 协议活动和为较小组件组成,UI 传输、 压缩、 加密、 帧和等等的 RDP 驱动程序 (Wdtshare.sys),和传输驱动程序 (Tdtcp.sys) 将打包到基础协议网络 TCP/IP 协议。

RDP 是完全独立的基础的传输堆栈,此案例的 TCP/IP 中的开发的。 在完全独立的传输堆栈的 RDP,表示为它们的客户需要增加了很少或没有重要更改协议的基本部分我们可以添加其他网络协议的其他传输驱动程序。 这些是 RDP 的性能和网络上的 extendibility 的关键元素。

免责声明:文章转载自《远程序桌面登录的.NET(C#)开发》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇阿里云(linux Centos7)安装mysqlJS代码收藏大全下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

windbg笔记

数据结构 Module EEClass MD(Method Desc) MT(Method desc Table) Object 基本命令 ~*e!clrstack 查看所有持有和等待锁的线程(的下一条要执行的代码) k 观察非托管堆栈 x <模块名>!*<函数名>* 查看符号 lm -f 显示已经载入的模块及其完整路径 sx...

python socket基础

# socket """ Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯 语法: socket.socket(AddressFamily, Type) 该函数带有两个参数: Address Family:可以选择 AF_INET(用于 Internet 进程间通信)...

LLDB调试基本使用

  在平时开发中,我们可能需要调试某些东西,比如查看给服务器发请求时传过去的参数,如果不适用LLDB的话我们用的最多的就是通过NSLog方式去打印,但现在我们可以精简这个步骤,那就是使用LLDB调试命令.   Xcode从4.0开始编译器开始改用LLVM,相应的调试器也从gdb改为LLDB。而从 Xcode5.0开始所有工程也被自动设置为使用LLDB。  ...

有没有记录程序运行中所有的函数调用堆栈的工具?

比如如下代码: ˂!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--˃public class A{  public static void Main()  {    B();    C();  }  B()...

使用apache的ab命令进行压测

1. 背景:互联网发达的今天,大大小小的网站如雨后春笋,不断出现,但是想要做出一个网站很简单,但是想要做好一个网站,非常非常难,首先:网站做好之后的功能怎么样这都是次要的,主要的是你的网站能承受怎么样的访问量,一个在高压访问下,能承受很高峰值的访问并发才能称得上是一个好的网站,那么作为一个程序员,当你搭建好你的网站之后,你应该怎么测试你的网站并发访问量呢?...

redis info详解

192.168.64.102:9021> info all# Server(服务器信息)redis_version:3.0.0                              #redis服务器版本redis_git_sha1:00000000                  #Git SHA1redis_git_dirty:0    ...