基于RDP的声音传输服务程序设计_信息技术论文
魏 勇
(北京工业大学 计算机学院 , 北京 100022)
摘 要 本文是作者为 sel system公司开发基于rdp的声音服务终端程序(terminal server)的,这个程序是建立在microsoft 未公开的rdp协议之上的。文中描述了程序设计中遇到的各个方面,特别是针对声音数据数据量大的特点提出了我们的解决方法,这些方法也适用于其他的类似场合,具有一定的普遍意义。
关键字 rdp , 声音, directx,directsound com , 环缓冲(ring buffer)
1 remote desktop protocol (rdp)
rdp (remote desktop protocol) 是微软根据itu (international telecommunications union) 的t.120协议族制订的一套未公开发表的数据传输协议,是终端服务器 (terminal server) 和客户端之间的通信协议,它使得远程用户可以使用键盘和鼠标通过网络在应用程序之间进行通信。rdp的目的是把nt/2000终端服务器上的显示等数据平滑地传送到客户端。这里的客户端可以是使用各种系统的不同结构的pc或non-pc设备,如运行unix 、linux 、dos等各种不同os平台的计算机。通过rdp协议客户端的计算机可以与远程服务器上正在运行的服务程序进行交互以获得相应的服务。
rdp的体系结构支持多点数据传输,能够实时地将数据从终端服务程序传送到各个客户点。rdp的数据传送使用的是一种栈(stack),和通用的osi七层模型相似。从服务方发送的数据顺序通过各层协议栈,形成网络包,最终通过网络送达终端客户;从终端客户发来的数据则以相反的顺序送达服务程序端。
值得一提的是,rdp没有为实时声音数据传输制订标准,它目前只支持简单的系统喇叭鸣叫(system beeps),我们的工作就是为了弥补这一不足,为终端服务程序添加上实时的声音传输功能。