如何实现协议

时间:2010-11-17 09:10:17

标签: c# java c++ protocols

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

谢谢!

2 个答案:

答案 0 :(得分:3)

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

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

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

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

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

答案 1 :(得分:1)

VNC协议(*)有许多开源实现,实际上Microsoft RDP协议也有一些开源实现。

协议实际上不能是“开源” - 它们可以像“规范是免费公开的”那样“开放”,它们可以是“开源兼容”,如“如果你在开源中实现协议”程序,我们不会确定你的添加“,但通常”开源“意味着你可以改变源和更改协议不会真正有益,因为你将无法互操作,对吧?

对于Microsoft RDP开源客户端,请查看rdesktopxrdp项目正在X11显示协议之上实现服务器端。 VNC实施只有十几个,但对于初学者,您可能希望查看tightvncrealvnc

(*)实际上,RFB是VNC兼容客户端中使用的协议,如Paul Ruane所述,VNC是原始软件套件的名称,也用作实现RFB并使用该软件的软件的通用术语。与原始VNC客户端相同的网络语义。