annotate paper/chapter4.tex @ 9:6c2887fc9df6

merge
author Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
date Thu, 23 Feb 2012 20:58:31 +0900
parents 29c8a800cc95 bb5fa4c369e5
children 92a06963b6a9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
bb5fa4c369e5 change chapter4.tex
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
1 \chapter{TreeVNCの設計}
2
093d4644d7ee add file
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 \label{chap:introduction}
093d4644d7ee add file
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 \pagenumbering{arabic}
093d4644d7ee add file
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
093d4644d7ee add file
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 \section{BroadCast}
093d4644d7ee add file
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 後で書く
093d4644d7ee add file
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 \section{TreeVNCの設計方針}
3
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
8 まず、多人数が参加している授業でVNCを使う場合に起こる問題は、最初で述べたように、一つのコンピュータに多人数が繋がり、
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
9 処理性能が大幅に落ちてしまうところが問題である。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
10
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
11 この問題を解決する為に、クライアント同士を接続させ、画面描画のデータを受け取ったクライアントが次のクライアントに
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
12 データを流すという方法で画面共有を行う方法を考えた。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
13 画面共有を行っているクライアントが一種のVNCサーバ自体にもなる。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
14
2
093d4644d7ee add file
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 また、クライアント同士の接続はツリー構造で行うことで管理がしやすくなると考えた。
3
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
16 クライアント同士の接続の管理はツリーの一番上にいるPC(Top)で行い(図を入れたい)、このTopだけがVNCサーバへ接続を行うようにする。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
17
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
18 今回作成したTreeVNCは、上記の実装でツリー状にクライアントを接続していくように実装を行い画面の共有だけを行うように実装した。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
19
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
20 TreeVNCはTightVNCのjava版のビューアを元に作成を行った。実装の細かい内容は以下で説明する。TreeVNCはTightVNCのjava版のビューアを元に作成を行った。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
21
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
22
9
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 8 7
diff changeset
23 <<<<<<< local
3
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
24 \subsection{MulticastQueue}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
25 画面が更新された際に更新をクライアントに伝えなければならない。ノードが多数ある場合、一人一人に更新を知らせるのではなく、同時に画面の更新を知らせたい。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
26 同時に更新を知らせるために、CountDownLatchを用いてMultiCastQueueを作成した。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
27
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
28 CountDownLatch一回CountDownされたときに待機しているスレッドを解放するように宣言する。更新情報が来るまでawaitを用いてスレッドを待機させる。更新情報が来たときCountDownを行う。すると、スレッドが開放されるので同時に更新情報を参照することができる。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
29 \newpage
2
093d4644d7ee add file
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
3
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
31 \begin{figure}[tb]
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
32 \begin{center}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
33 \includegraphics[scale = 0.5]{fig/multicastqueue.eps}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
34 \end{center}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
35 \caption{
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
36 クライアントへは並列にデータを送信する。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
37 }
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
38 \label{figure:splaying}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
39 \end{figure}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
40
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
41 \subsection{TimeOut}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
42 MultiCastQueueを使ってのデータの取得には問題が発生した。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
43 それは、接続してきたクライアントがデータを取得しない状況、例えばサスペンド状態になったときにTopのメモリの中にデータが残り続けるというものである。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
44 メモリに残り続けたデータはやがてメモリオーバーフローを引き起こしてしまうのである。その様子を図2.2に示す。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
45
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
46 \begin{figure}[!htbp]
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
47 \begin{center}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
48 \includegraphics[scale = 0.5]{fig/TimeOut2.eps}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
49 \end{center}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
50 \caption{
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
51 クライアントサスペンド時のTopのメモリの様子。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
52 データが残り続けメモリを圧迫してしまう。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
53 }
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
54 \label{figure:splaying}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
55 \end{figure}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
56
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
57 そこで、ある一定の時間がたつと代わりにデータを取得してくれるTimeOut用のスレッドを作成した。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
58 TimeOutスレッドはサスペンドしているクライアントの代わりにデータを取得する。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
59
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
60 \begin{figure}[!htbp]
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
61 \begin{center}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
62 \includegraphics[scale = 0.5]{fig/TimeOut3.eps}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
63 \end{center}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
64 \caption{TimeOutが代わりにデータを取得する}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
65 \label{figure:splaying}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
66 \end{figure}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
67
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
68 TimeOutスレッドがクライアントの代わりにデータを取得することで、MulticastQueueの中からデータが削除されTopのメモリを圧迫することがなくなった。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
69
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
70 \section{圧縮の問題}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
71 VNCで扱うRFB プロトコルには、使えるエンコーディングのタイプの1つとしてZRLE(Zlib Run-Length Encoding)がある。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
72 ZRLEはZlibで圧縮されたデータとそのデータのバイト数がヘッダーとして付けられ送られてくる。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
73 Zlibはフリーのデータ圧縮及び解凍を行うライブラリである。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
74 可逆圧縮アルゴリズムの圧縮と解凍が行えるjava.util.zip.deflaterとjava.util.zip.inflaterを実装している。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
75
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
76 \subsection{java.util.zip.deflaterの実装の問題}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
77 Zlib圧縮は辞書を持っていて、その辞書に登録されているデータを元に解凍が行われる。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
78 しかし、java.util.zip.deflaterは現在持っている辞書を書き出すこと(flush)ができないことが分かった。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
79 辞書を書きだすことができない為、Zlib圧縮されたデータを途中から受け取ってもデータが正しく解凍を行うことができない。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
80 %元々のZlibの規約にはこの辞書をflushする機能があったがJavaには実装されていなかった。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
81
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
82 \subsection{ZRLEE}
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
83 そこで、TopがZRLEで受け取ったデータをunzipし、データをzipし直して最後にfinish()
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
84 をいれることで初めからデータを読んでいなくても解凍を行えるようにした(毎回新しい辞書を使うようにした)。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
85 このエンコードはZRLEEエンコードと定義した。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
86 一度ZRLEEエンコードに変換してしまえば、そのデータをそのまま流すだけで良い。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
87 よって変換はTopが行う一回だけですむ。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
88 ただし、deflater,inflaterでは前回までの通信で得た辞書をクリアしないといけないため、
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
89 Topとクライアント側では毎回新しく作る必要がある(クライアント側はinflaterだけ)。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
90 また、ZRLEEはクライアント側が対応していなければならないという問題がある。
8a9c3d23ca4a write chapter4
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
91
8
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
92 \subsubsection{ZRLEとZRLEEのデータ圧縮率の比較}
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
93 RAW,ZRLE,ZRLEEのデータ量の比較を行った。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
94 図6は1920 * 1080の画面の全描画にかかるデータ量を測った結果を示した図である。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
95 ZRLEEの方がデータ量が少なくですんでいる。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
96 これは、ZRLE(Zlib)が初めに送られた辞書を用いての解凍が余り有効的に働いていない
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
97 場合があるからだと思われる。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
98 つまりVNCの場合はZRLEEの様に毎回辞書のデータを付加させて送ってもデータ量に差が
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
99 でない可能性があることが分かった。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
100
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
101
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
102 \begin{figure}[!htbp]
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
103 \begin{center}
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
104 \includegraphics[scale = 0.5]{fig/compare_encoding.eps}
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
105 \end{center}
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
106 \caption{
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
107 RAW,ZRLE,ZRLEEによる1画面(1920*1080)描画にかかるデータ量。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
108 x軸はピクセル数、y軸はバイト数を表している。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
109 }
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
110 \label{figure:splaying}
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
111 \end{figure}
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
112
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
113 \newpage
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
114
2
093d4644d7ee add file
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 \section{UserInterface}
8
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
116 \subsection{プロキシの検索}
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
117 TreeVNCはクライアントが起動した際にBroadcastをしようして、
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
118 同じセグメント内にプロキシが起動しているかを調べる。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
119 プロキシはクライアントからBroadcastのリクエストが飛んでくると、
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
120 ソケットを張ってクライアントに自分の情報を教える。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
121 \subsection{TreeVNCの使い方}
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
122 今回作成したTreeVNCはクライアントが使いやすいように設計を行った。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
123 TreeVNCはまずプロキシを起動させる事が必要である。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
124 プロキシを始動するには-pオプションを指定してやる事で
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
125 localhostに対してVNCをかける事ができる。
2
093d4644d7ee add file
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126
8
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
127 別のコンピュータの画面共有を行いたい場合は-pオプションを指定してやるか
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
128 、第一引数にIpAddress,第に引数にportを指定してやる事で別のコンピュータの
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
129 画面共有も行う事ができる。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
130
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
131 クライアントは引数なしで実行すると(ダブルクリックで実行できる)
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
132 現在つなぐ事のできるプロキシの一覧が表示されるので、選択してつなぐ事ができる。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
133
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
134 しかし、Broadcastを使用してプロキシの検索を行っているので、
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
135 別セグメントで起動しているプロキシを見つける事ができない。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
136 そこで、TreeVNCを起動する際に-cオプションを付けてやる事で、
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
137 アドレス入力欄が表示され、そこに接続したいプロキシのアドレスを
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
138 入力する事で、別セグメントのプロキシとも通信をできるようにした。
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
139
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
140
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
141
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
142 \section{LionAuthenticate}
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
143