2006 年 12 月

2006 年 12 月に書いた日記。30 項目あります。

日記の概要

いよいよ画面を出す
やっとメッセージクラスの設計が終わった。これで準備が整ったので、いよいよ画面を出してみよう。では、RFBSession クラスを修 …… (30日 22:35)
PixelFormat クラス
続いて、画素形式に PIXEL_FORMAT を表すクラスを作る。Java の命名規則に準じて PixelFormat クラスとしよう。Java には、java. …… (30日 3:49)
ClientInitMessage/ServerInitMessage
初期化用のメッセージが出てきたので、ProtocolVersionMessage や SecurityResultMessage と同様、Message インタフェースを継承 …… (28日 23:53)
初期化メッセージ
早く何でもよいので画面を出してみたい。これだけコードを書いてもまだ UI がない理由は、未だに裏で行われる交渉部分の実装途中 …… (27日 23:55)
認証なしのハンドシェイク
ハンドシェイク処理については整理できたので、RFBSession に実装コードを追加し、ハンドシェイクの枠組みを作ってみよう。==== …… (26日 23:57)
SecurityResultMessage クラス
バージョンによる分岐が多くなると、コードが見づらくなってしまうため、意味のある単位でまとめることができるデータ構造は、独 …… (25日 23:07)
セキュリティ処理
プロトコルバージョンの確定、セキュリティの種類の確定と進んだ後は、その種類に応じた処理を行うことになる。セキュリティの種 …… (24日 21:56)
Security ハンドシェイク
バージョンの交渉が終了した後は、接続に使用するセキュリティの種類の交渉を行う。これは、Security ハンドシェイクと呼ばれて …… (23日 20:12)
ProtocolVersionMessage クラス
Message インタフェースを利用して、前述の ProtocolVersion メッセージをクラス化してみよう。========== ProtocolVersion.jav …… (22日 22:40)
メッセージクラスの設計
今後、メッセージが数多く出てくるので、今のうちにメッセージ周りの設計をしよう。以前述べたように、メッセージには色々な種類 …… (21日 23:57)
通信コンテキスト
RFB は状態(ステート)を持つプロトコルである。例えば、ProtocolVersion メッセージを交換し、サーバがクライアントが返したバ …… (20日 23:53)
ProtocolVersion メッセージ
設計だけがずっと続くとつまらないので、軽いテストを含めながらやろう。RFB の通信はメッセージの交換で行われる。メッセージは …… (19日 23:56)
RFBOutputStream クラス
ええ、今日は手抜きです。手抜きですとも。でも InputStream 作ったなら OutputStream もいるでしょ?========== RFBOutputStrea …… (18日 20:24)
RFBInputStream クラス
では、RFBInputStream クラスを作成する。基本となる InputStream の実装とバッファ処理、そして RFB の基本型を読み取るため …… (17日 23:40)
複雑なストリームの問題
しばらくは基礎の実装が続くので、プロトコルの解説は少しおいといてほしい。RFB 通信経路から基本型を読み出すために、RFBInput …… (16日 23:25)
RFB のデータ型とマッピング
RFB は 8 ビットのバイトストリームをベースとしているため、InputStream と OutputStream でも構わないのだが、そのままではバ …… (15日 23:57)
TCP のセッション
RFB は、双方向に通信ができる環境で利用できる。このような環境を Java で表すとすれば、InputStream と OutputStream のペアで …… (14日 23:51)
TCP による RFB サーバ
サーバを作る場合、テストにはクライアントが必要なので、本家の RealVNC クライアントに手伝ってもらう予定だ。RealVNC は、TC …… (13日 23:54)
Java で RFB サーバ
RFB について書くだけなら、仕様書を読むのと変わらない。折角なので、例によって具体的な実装を行いながら進めたい。VNC には本 …… (12日 23:53)
RFB の概要
RFB は、バイト指向の通信プロトコルである。クライアントとサーバの間では、メッセージと呼ばれる可変長のデータ構造の塊を相互 …… (11日 23:55)
VNC と RFB プロトコル
VNC は GUI ベースのリモート機器を遠隔操作するための、クライアント・サーバ系ソフトウェアである。クライアントからサーバ側 …… (10日 23:58)
リモートデスクトップ
最近の Windows にはリモートデスクトップ機能がある。これは、従来のターミナルサーバの機能を拡張したもので、遠隔地にあるコ …… (9日 23:55)
DllRegisterServer/DllUnregisterServer
さて、お膳立ては整ったので、DLL にDllRegisterServer と DllUnregisterServer を実装しよう。========== library.cpp ======= …… (8日 23:58)
COM クラスとエクステンションの登録処理
昨日作った WriteRegistryStringValue を使うと、COM クラスとエクステンションの登録処理を、少しは見やすく書くことができる。 …… (7日 23:50)
インプロセスサーバの自己登録機能
さて、必要な機能は全て実装したのだが、一般的なインプロセスサーバとして完成させるには、あともう少しやるべきことがある。イ …… (6日 23:29)
追加クラスのテスト
新たに作成した 2 クラスの動作をテストしよう。HardLinkIconID クラスの時と同じように、まずはレジストリファイルを作成して …… (5日 21:12)
テンプレートクラスのインスタンス
テンプレートクラスは、定義しただけでは何の効果もない。テンプレートの引数に具体的なクラス型を与えることで、テンプレートを …… (4日 22:31)
ClassObject テンプレートクラス
新しく作った 2 つのクラスにもクラスオブジェクトが必要だ。これも HardLinkIconIDClass をコピーして作ることができる。■Har …… (3日 23:58)
FolderLinkIconID クラス
この勢いで、フォルダリンク(フォルダショートカット)の、FolderLinkIconID クラスも作り上げてしまおう。やはり似たようなソ …… (2日 23:56)
MountPointIconID クラス
アイコンは 3 種類用意しているが、まだ 1 つしかクラスを作っていなかった。今日はマウントポイント用のクラスを作ることにする …… (1日 23:53)


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