0

VNCsharp .NET コントロールを使用して、VNC プロトコルを使用してリモート XenServer セッションに接続しています。このコントロールは、VM の解像度を上げた場合を除いて、うまく機能しています。たとえば、800x600 から 1024x768 まで。XenCenter のコンソール ビューアーは、この状況をうまく処理します。

その場合、XenServer が画面更新の送信を停止したように見えます。しかし、私は Wireshare に接続しましたが、クライアントにまだパケットが送信されていることは明らかです。VNCsharp が境界条件 (ストリームの変更) を処理しており、問題ないように見えることを確認しました。解決要求がタイムアウトした場合、Windows が元の解像度に戻ると、画面は再び機能します。

接続を切断して再接続すると、クライアントは喜んで新しい解像度をレンダリングします。

私が見逃しているリセット信号があると思われます。これについて VNC RPC に何かありますか? もしそうなら、私はそれを見つけることができませんでした。

提案?

4

1 に答える 1

0

この問題は解決しましたが、ハックのように感じます。ReadByte呼び出しにストリームタイムアウト(5秒)を追加する必要がありました。ホストはストリームをドロップし、クライアントはそれを検出しません。

非アクティブによるタイムアウトの発生を防ぐために、クライアントがアイドル状態の場合にマウスの動きを送信するキープアライブスレッドを追加する必要がありました。生き続けるためのよりエレガントな方法があると思いますが、それは今のところ機能しています。

于 2009-10-10T18:28:13.273 に答える