2010-11-17 135 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客戶端相同的網絡語義。