2007 年 1 月

2007 年 1 月に書いた日記。32 項目あります。

日記の概要

マウス入力の分析
今日はマウス入力を解析してみよう。実行し、いろいろマウスを動かしてみる。jp.loafer.rfb.message.client.PointerEventMessage …… (31日 23:55)
キー入力の分析
今日はキー入力を解析してみよう。実行し、「Key$」と入力してみた。jp.loafer.rfb.message.client.KeyEventMessage[down=true,c …… (30日 23:56)
RFBSession のダイエット & 動作テスト
では、メッセージがどう流れるかテストしてみよう。以前と同じく RFBSession を使うのだが、これはだいぶダイエットできたはずだ …… (29日 23:07)
メッセージクラスに toString
次はメッセージクラスだ。クライアントメッセージのパラメータを確認できるように、それぞれの toString をオーバーライドする。 …… (28日 23:54)
今更 toString & equals & hashCode
メッセージの流れを調べるためには、受信したメッセージをデバッグ出力すればよいのだが、今まで toString をオーバーライドして …… (28日 0:00)
BaseRFBDisplay クラス
そろそろテストや調査をしたいので、RFBDisplay を実装したクラスを作ってみる。後々既定の実装を持つ抽象クラスとして使えるよ …… (27日 0:07)
RFBContext の改造
昨日の考察により、クライアントメッセージのうち、SetPixelFormat, FixColourMapEntries, SetEncodings は、通信状態やその後の …… (25日 20:22)
RFBDisplay の既定実装
RFBDisplay はメッセージ処理の基底となるのだが、今日は RFBDisplay の既定の実装について考えてみよう。メイン処理に入ると、 …… (24日 23:19)
MessageDispatcher クラス
次に、メッセージを読み出し、RFBDisplay 実装クラスに転送するクラスを作る。このクラスは各種ハンドシェイクの後に実行される …… (23日 23:07)
RFBDisplay インタフェース
メイン処理を RFBHandler だけで表現するには厳しいので、上位水準のクラスを抽出していこう。メイン処理においては、クライアン …… (22日 23:50)
クラス階層と実装水準
RFBSession が落ち着いてきたので、やっと次のステップに進める。画面データやバッファの実装について、かなり前に考えて放った …… (21日 23:53)
動作チェック
大分と構造が変わったので、ここで一度、以前と同じように動作するかどうかテストしよう。RFBSession クラスに詰め込んでいた処 …… (20日 23:54)
VNCAuthenticationHandler クラス
次に、VNC 認証をハンドラ化する。まあ、以前の実装をそのまま移すだけなので手間ではない。これも好きなパスワードを指定できる …… (19日 20:16)
NullSecurityHandler クラス
SecurityHandshake クラスは、種類を決定した後、その本処理を SecurityHandler に委託する。RFB で定義されている認証手法は 2 …… (18日 19:08)
SecurityHandshake クラス
続いてセキュリティハンドシェイクだ。これはセキュリティの種類の決定と、実際のセキュリティ処理の 2 段階で行われる。という …… (17日 12:53)
ProtocolVersionHandshake クラス
汎用処理用のインタフェースの設計ができたので、RFBSession に詰め込んでいたハンドラを独立させることを考える。ハンドシェイ …… (16日 23:49)
RFBSession のリファクタリング
さて、サーバ側の実装の目処が付いた。では、RFBSession に追加といきたいところだが、RFBSession にあまりにも詰め込みすぎて …… (15日 23:55)
画面バッファの作成
RFB の画素形式は、初期化時にサーバが既定値を決め、主処理においてはクライアントが自由に変更できる。それぞれ ServerInit と …… (14日 23:55)
画面データと AWT クラス
通信を行うための最低限の準備は整った。次はいよいよ画面データについて考えていかなければならない。まず、RFB の画面は画素形 …… (14日 0:51)
クライアントメッセージの流れ
これでクライアントメッセージが全て揃ったので、クライアントの送るメッセージを解析する事ができる。まず、クライアントメッセ …… (12日 22:35)
FixColourMapEntries メッセージ
ラストは FixColourMapEntries メッセージだ。これは種類 1 番のクライアントメッセージで、クライアントが非 TrueColor の画 …… (11日 23:56)
SetEncodings メッセージ
今日は SetEncodings メッセージだ。これは種類 2 番のクライアントメッセージで、クライアントが対応している画面データの符号 …… (10日 23:56)
FramebufferUpdateRequest メッセージ
今日は FramebufferUpdateRequest メッセージだ。これは種類 3 番のクライアントメッセージで、クライアントがサーバに対して、 …… (9日 23:36)
ClientCutText メッセージ
今日は ClientCutText メッセージだ。これは種類 6 番のクライアントメッセージで、クリップボードに含まれるテキストが、クラ …… (8日 23:58)
PointerEvent メッセージ
今日は PointerEvent メッセージだ。これは種類 5 番のクライアントメッセージで、クライアント上でマウス入力が発生した際に送 …… (7日 23:58)
KeyEvent メッセージ
今日は KeyEvent メッセージだ。これは種類 4 番のクライアントメッセージで、クライアント上でキー入力が発生した際に送られる …… (6日 23:52)
SetPixelFormat メッセージ
今日から、1 つずつクライアントメッセージを紹介しよう。まずは SetPixelFormat メッセージだ。これは種類 0 番のクライアント …… (5日 22:58)
クライアントメッセージの基本実装
ClientMessage はインタフェースだ。インタフェースには実装が含まれないため、利用側と実装側の依存性を最小限に抑える事ができ …… (4日 23:27)
(番外)設計の見直し
…しまった。しばらくはまたメッセージの実装という面倒な作業になる。RFB がボリュームのある仕様なので、どうしてもコードが増 …… (3日 23:54)
ClientMessage インタフェース
イベント駆動段階に移行した後は、操作等によって起こったイベントに応じて、クライアントがメッセージをガンガン送ってくる。ク …… (2日 23:47)
イベント駆動
初期化メッセージの交換が終わると、RFB はイベント駆動方式の主処理に移行する。この段階では、クライアントが送るメッセージ順 …… (1日 23:55)
VNC 認証のセキュリティ処理
画面が出たので少し安心した。ここで、以前保留にしていた VNC 認証をやろう。VNC 認証はパスワードによる単純な認証である。ユ …… (1日 1:21)


Copyright (c) 1994-2007 Project Loafer. All rights reserved.