10
|
1 title: 有線 LAN 上のPC画面配信システムTreeVNCの改良
|
|
2 author: Tatsuki IHA
|
|
3 profile:
|
|
4 lang: Japanese
|
|
5 code-engine: coderay
|
|
6 # 研究目的
|
|
7 授業やゼミ等で、それぞれがPC端末を持っている場合では、PCの機能を活かしたコミュニケーションが可能である。教員が操作する画面をそのまま学生に配信したり, ゼミなどで、発表する学生の画面を切り替えたりすることを可能にしたい。
|
|
8 画面配信システムTreeVNCは参加したクライアントをバイナリツリー状に接続し、配信コストを分散させる仕組みを取っている。そのため,多人数が参加しても処理性能が下がらない。また、ツリーのルートが参照しているVNC サーバーを変更することで、ケーブルの差し替えなしに画面の切替が可能となる。
|
|
9 本研究ではTreeVNCの改良として、複数のネットワークへの対応、 WANへの対応、 マルチディスプレイへの対応を行うとともに、TreeVNC 有用性を示すために画像データの遅延時間計測を行う
|
|
10
|
|
11 # 近況
|
|
12 - multi display
|
|
13 - Root Node での Lost Child
|
|
14
|
|
15 # Multi Display
|
|
16 - share する側の画面の座標情報をRoot に送信
|
|
17 - Root は FrameBufferUpdateReqeust で座標情報を送って画面データを取得
|
|
18
|
|
19 # Multi Display
|
|
20 - 途中で止まる
|
|
21
|
|
22 # 止まる原因
|
|
23 - SenderTask で FrameBufferUpdateReqeust Message を send するはずだが、Message Queue にデータが入っていない
|
|
24 - ReceiverTask で Message Queue に FrameBufferUpdateReqeust を入れている
|
|
25
|
|
26 # 止まる原因
|
|
27 - Reader から readByte する際に止まっている(socketRead0)
|
|
28 - コード 読むとどこかでずれているわけでもなく
|
|
29 - 別の Thread からFrameBufferUpdateReqeust を送ると動く(viewer の更新ボタンを連打すると動く)
|
|
30
|
|
31 # 解決法
|
|
32 - 別ThreadでFrameBufferUpdateReqeust を一定時間毎に送信するようにする(先週)
|
|
33 - しかし, ServerChange ができない場合がある事が判明
|
|
34 - ReceiverTask を stop させるときに Reader が止まって, thread が止まるのに時間がかかる場合がある
|
|
35 - 止まる時間がまちまち
|
|
36
|
|
37 # 解決法
|
|
38 - Reader に timeout つけました
|
|
39 - この Reader は元はSocket の InputStream なので Socket に timeout を付けました
|
|
40
|
|
41 ``` java
|
|
42 socket.setSoTimeout(time)
|
|
43 ```
|
|
44
|
|
45 # Root Node の Lost Child
|
|
46
|
|
47 # 次
|
|
48 - そつろん
|
|
49 - Root Node のserver Change
|
|
50 - なせがいろいろな状況で Sound のport に繋がる
|
|
51 - sound のコード
|
|
52 - 書き込みと読み込みの並行
|
|
53 - -d で接続した時自分のが消えない場合がある
|
|
54 - Nat越えた ServerChange ができるといいな
|
|
55 - multi display のサイズ
|