問題タブ [rfb-protocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
941 参照

c++ - RFB プロトコルの PointerEvent と DesktopSize

VNC サーバーと通信するために自分のソフトウェアで実際に RFB プロトコルを再コーディングしているときに問題があり、サーバーのデスクトップ サイズのサイズを取得する方法を知りたいです。serverInit メッセージ内の framebuffer_width を既にテストしていますが、デスクトップのリール サイズを表していません。取得方法がわかりません。

2 番目の質問は、PointerEvent メッセージをサーバーに送信することです。マウスを移動するには、実際に私のソフトウェアでマウスの x と y を位置 {0, 0} に設定しました。これを VNC サーバーに送信すると正常に動作しますが、x 位置に 5 を追加すると動作しません。 t move 5 pixel 必要以上に大きく移動します。理由がわかりません???? 私を助けてくれませんか?

ご回答ありがとうございます。

0 投票する
1 に答える
2165 参照

client - VNC 接続仲介 (RFB プロトコル サーバー)

次のシナリオを検討してください。

  • VNC クライアントは、NAT の背後にある VNC サーバーに接続しようとします。

  • 上記のタスクを達成するのに役立つJavaでポートフォワーダーを作成しましたが、正常に動作します。

  • ここで、どういうわけか、このフォワーダー内にコネクション ブローカリング機能を追加して、VNC クライアントとサーバーの間の通信をインターセプトし、転送ユーティリティ内でも VNC クライアントを認証できるようにする必要があります。

実際には、VNC クライアントから受け取ったパスワードをアプリでの認証に使用していると推測したかもしれません。RFB サーバーはアプリケーション レイヤーで実装できるため、この傍受は可能であると思います。上記のすべての通信で VNCAuthentication (DES 暗号化/復号化) が使用されます。転送ユーティリティ内での認証が成功したら、そのクライアントの転送を続行します。それ以外の場合は、クライアントを閉じます (転送を停止します)。

私はいくつかの実装を試しましたが、rfb サーバーの Java 実装をカスタマイズしようとしましたが、まだそこに到達できません。時間がかかることはわかっていますが、私が正しく考えているかどうかを確認する必要があります.

上記のシナリオの実装があいまいであるか、不可能であるか、または違法であるかどうかを教えてください。これが可能である場合は、いくつかのギルドラインを用意してください...

0 投票する
1 に答える
1585 参照

api - RFBプロトコルの実装

私は自分のプロジェクトでそれを使用するための実装を探しています、それについての長い検索の後、私はこのトピックRFB protocolに出くわしました(答えは専門家のメンバーによって書かれています...)私はすでに別のフォーラムにトピックを投稿しました同じ答えがありました。

私の質問は、なぜそれを呼び出すのにRFB protocol、それを実装するAPIやライブラリがないのかということです。私の知る限り、プロトコルにはそれを使用するためのAPIが必要です。TCP / IP、UDPなど。

PS:ここに同じ問題について私が投稿した別の質問

0 投票する
1 に答える
553 参照

network-programming - RFB リファレンス実装?

私はRFBサーバーを書いています。RFB リファレンス クライアントを知っている人がいるかどうか疑問に思っていました。

現在、RealVNC を実行し、RFB サーバーに接続するように依頼しましたが、問題なく動作しています。ただし、RealVNC は優れたエンド ユーザー エクスペリエンスを提供することを目的としています。プロトコル機能のすべての可能な有効な組み合わせをテストすることを意図したものではありません。したがって、RealVNC が使用する機能が正しく実装されていることはわかっていますが、RealVNC が使用しない機能がまったく機能しているかどうかはわかりません。でも、どうにか確認できれば本当に助かります。

助言がありますか?

(もちろん、自分自身の RFB クライアントを作成することもできます。しかし、それでは何も証明されません。何かが機能しない場合、それがクライアントなのかサーバーなのか、私にはわかりません。すべてが機能する場合動作しますが、それでも両端が RFB を正しく実装していることを意味するわけではなく、それぞれに同じバグがあるというだけです。)

0 投票する
0 に答える
913 参照

image-processing - ARGB のピクセル形式データ構造

Java で RFB プロトコル (VNC サーバー) を実装しています。PIXEL_FORMATプロトコルで提供されているを理解できません。ピクセル形式のデータ構造の定義は次のとおりです。

RFB プロトコルは各フラグの意味を詳細に定義していますが、生の ARGB 画像の正しい値を決定することはできません。次の値を使用しています。

RealVNC クライアントを使用している間はグレースケール画像を取得し、TightVNC クライアントを使用している間は画像の 4 つの異なるレイヤーを並べて取得します。

適切なエンコーディングを取得するのを手伝ってくれる人はいますか?

0 投票する
1 に答える
1504 参照

html - 単一の GUI アプリケーションに対する RFB または RDP の使用

リモート クライアントがネットワーク経由で表示できる GUI を作成できるようにしたいと考えています。

1 つのアプローチは、HTML5 で GUI 全体をコーディングし、Apache などのサーバーから実行することです。これに関する主な問題は、GUI に少なくとも 1 つ、場合によっては 2 つのウィンドウがあり、ライブ ビデオ ストリーム (音声なし) を含み、ライブ ビデオをHTML5にストリーミングする良い方法がないように思われることです。生きていること。数秒の遅延は許容できません。

もう 1 つのアプローチ (私はすでに行っており、実際にはかなりうまく機能しています) は、GUI をデスクトップ アプリケーションとしてコーディングし (たとえば、Qt を使用)、VNC または Windows リモート デスクトップを使用してデスクトップをリモートで表示することです。これにより、必要な応答性と遅延の欠如が得られますが、1 つのアプリケーションだけでなく、OS デスクトップ全体にアクセスできるという欠点があります。

そこで、私の質問は次のとおりです。RFB (つまり、VNC の基盤となるプロトコル) または RDP (Windows リモート デスクトップの基盤となるプロトコル) を使用して、単一の GUI アプリケーションへのリモート アクセスを提供できるメカニズムまたはフレームワークはありますか?デスクトップ全体?

0 投票する
1 に答える
133 参照

c - Incorrect color encoding in Remote Framebuffer server

I am working on a simple implementation of a RFB server using "RAW" pixel encoding. I am using TightVNC as my desktop client. I have the code working up to the point where the client is able to request the entire "desktop" which is 640x480 pixels. My test pattern is drawing correctly with regard to shape but the colors are wrong.

I'm trying to use 8 bits per pixel: three red, three green and two blue encoded as RRRGGGBB in each byte.

My ServerInit packet contains this pixel encoding specification...

The entire structure is defined thus:

Now if I fill my desktop image with 0xe0 (binary 111 000 00) then I expect this to be interpreted as pure bright red. But it is appearing as a light blue color (as if the 8 individual bits were interpreted backwards!). The shape of my test pattern is correct as I am drawing a few white pixels in the top corner (white is binary 111 111 11 obviously).

I do not understand this. I believe I have followed the algorithm and encoding as it is described in the RFB specification... http://vncdotool.readthedocs.org/en/latest/rfbproto.html#serverinit

What am I doing wrong?

0 投票する
0 に答える
306 参照

java - スクロール中の VNC クライアント フレームバッファの更新

学校用のオープンソース Android vnc クライアント ( https://sourceforge.net/projects/multivnc/ ) を使用していますが、次のことを行いたいと考えています。

フレームバッファをスクロール/指の移動中に更新したい(スクロールを停止したときではありません)。指を動かすと入力が送信されることはわかっていますが、フレームバッファはスクロールを停止するまで更新を待機します。以下の VNCconn.java ファイルは、VNC のフレームバッファの更新に関与するコードの一部です。プライベート void processNormalProtocol

指を置くと、フレームバッファ全体がフリーズし、スクロールを停止するか、指を離して画面を更新するのを待ちます。

指を下に置いてスクロールを開始すると、コードは次の場所で停止します。

rfb.readServerMessageType();

readServerMessgeType で停止しているため、コードは以下の行に移動して Framebuffer を更新しません。どうすれば更新できるか知っている人はいますか????

この行を削除しようとしました(スクロールしたときにコードがここにスタックしたくないため):

int msgType = rfb.readServerMessageType();

しかし、私はこのエラーが発生します:

コードのロジックに従って、readServerMessageType が rfb.java ファイルに移動し、次に Android スタジオの "DatainputStream.java" と呼ばれる閉じたファイルに移動することを確認できます。ロックされたファイルであるため変更されました:

フレームバッファの更新に関係する VNCConn.java 部分は次のとおりです。

これが rfb.readServerMessageType() であり、 is.readUnsignedByte(); から抜け出すことはありません。スクロールが止まるまで

そして、これは Datainputstream.java を呼び出します (これはロックされており、変更できません)

0 投票する
2 に答える
3386 参照

visual-c++ - C++ の RFB / VNC クライアント (TRLE エンコーディング)

私は vc++ で vnc クライアントを作成しており、TRLE エンコーディング スキーム用に作成する必要があります。サーバーとして、TRLE (エンコード値 = 15) でデータを送信できるタイトな vnc または実際の vnc を使用しています。私はRFBとVNCを初めて使用するので、サーバーから取得したデータをどのように読み取ればよいかわかりません(サーバーがx、y、w、hおよびencoding_typeを含むメッセージタイプ0で送信することを認識しています)およびデコードデータ。RFB とデコード技術の実装を理解するために使用できる例はありますか? ほとんどの場合、ZRLE、Copyrect、または Raw エンコーディングの例が github で見つかりましたが、それらの説明は十分に明確ではありませんでした。