Does anybody know weather VNC (RFB) supports virtual channels and add-ins to them like it is in the RDP (Microsoft Terminal Services)? I just want to transfer my own data across a VNC connection...
1 に答える
残念ながら、VNC/RFBには仮想チャネルがありません。
これが私がRFBプロトコルに見つけた最高のリファレンスです:http://tigervnc.org/cgi-bin/rfbproto
何を送信しようとしているのか、どの方向に送信しようとしているのかを詳しく知らなくても、頭に浮かぶオプションがいくつかあります。
タイトエンコーディングはファイル転送をサポートしています。ここに完全なタイトエンコーディングの不十分なフォーマットの仕様があります:http://vnc-tight.svn.sourceforge.net/viewvc/vnc-tight/trunk/doc/rfbtight.odt?revision = 3619
クライアントとサーバーの両方を制御できる場合は、データを送信できるカスタムエンコーディングを定義できます。クライアントは、エンコーディングをサポートしていることをアドバタイズし、サーバーがそれをサポートしている場合は、それを使用し始めます。
クリップボードメッセージ(ClientCutTextおよびServerCutText)を使用でき、データをISO 8859-1(Latin-1)としてエンコードするカスタムを作成するバイナリデータを送信する必要がある場合。欠点は、サーバーがそれをサポートしておらず、クライアントがデータを送信した場合、データがサーバーに貼り付けられることです。
サーバーからクライアントに送信する必要がある場合は、現在のビューポートの外部(つまり、ビューポートの右側から123ピクセル)にデータを送信するframebufferUpdateメッセージを使用できます。ただし、サポートのないクライアントはこれをうまく処理できない可能性があります。
サーバーからクライアントに送信する必要がある場合のもう1つのオプションは、ビューポート内で特別なマーカーを使用してframebufferUpdateを送信し、すぐに(同じパケット内であっても)framebufferUpdateを実際の表示データと一緒に送信して置き換えることです。 。これは既存のクライアントで機能します(もう少しオーバーヘッドがかかります)。ただし、クライアントには短いちらつきが見られる場合があります。