2010-11-17 124 views
2

是否有任何开源桌面共享协议?如果是这样,他们是什么?任何人都可以告诉我为了实现协议而知道的事情,例如,如果我想写一个桌面共享协议,我需要知道什么,以及从哪里开始。(首选语言Java,C++和C#)如何实现协议

谢谢!

+0

你能详细说明你的意思是“桌面共享协议”吗?例如,你的意思是沿着微软远程桌面(RDP)或XWindows的方向吗? – Sean 2010-11-17 09:17:58

+0

该协议与TeamViewer,VNC一起使用... – Keshan 2010-11-17 09:24:15

回答

3

RFB是VNC应用程序中使用的协议,它是一个开放规范。

协议只是网络应用程序“同意”发言的语言。也就是说,因为连接的两端都说同一种语言(意味着他们知道什么字节意味着什么在通信中),他们能够发送有意义的信息给彼此并解释他们收到的信息。

因此,在实施协议之前你应该做的第一件事是学习和理解它。通常(并且在开放规范的情况下)将会有一个文档解释协议和所有的细节。例如,RFB协议的规范可以找到here

阅读并执行一个可以理解RFB的程序,您将创建一个RFB实现​​。

至于首选语言位:协议没有规定协议实现的语言,只是沟通的方式,所以你可以用你希望的任何语言实现它。

+0

该协议可能不会强制它,但还有其他实际问题:远程桌面_server_必须捕获完整的桌面,这在所有语言中都可能无法实现。 – MSalters 2010-11-17 10:34:07

1

VNC协议(*)有很多开源实现,实际上Microsoft RDP协议也有一些开源实现。协议实际上不能是“开放源代码” - 它们可以是“开放的”,如“规范公开免费提供”,它们可以是“开放源代码兼容的”,如“如果在开放中实现协议源程序我们不确定你的加入“,但通常”开放源代码“意味着你可以改变源代码,改变一个协议并不会真正有益,因为你不能相互操作,对吧?

对于Microsoft RDP开放源代码客户端,请查看rdesktopxrdp项目正在X11显示协议之上实现服务器端。 VNC实现是多如牛毛,但对于初学者,你可能想看看tightvncrealvnc

(*)其实RFB是VNC兼容的客户端使用,由保罗·鲁安提到的协议,VNC是名原始软件套件,也用作实现RFB的软件的通用术语,并采用与原始VNC客户端相同的网络语义。