処理 処理

モバイルプログラミング
第8回演習
本日の演習の流れ
1. 山手線プログラムの概要の解説
2. 課題1を終らし、山手線プログラムを完成
させる.
3. みんなの PC で山手線でGo!!
山手線プログラムって? 1/4
• 分散プログラミング
– 複数の PC に処理を分散
• 山手線プログラム
– 電車(の描画処理)が複数の PC で処理される
処理
ホストA
処理
ホストB
ホストC
山手線プログラムって? 2/4
• イメージ
– 電車がホストAからホストBへ移動して行く
ホストA
ホストB
山手線プログラムって? 3/4
サーバ
クライアント1
クライアント2
描画処理終了
接続先 IP
問い合わせ
接続先 IP
返答
受け取った
IPに接続
描画処理
開始
、、、
山手線プログラムって? 4/4
机
課題
• 課題1
–
–
–
–
現在の山手線プログラムは未完成
自分の次の PC の IP がわからない
IP がわからないと通信できない
自分の次の PC の IP をサーバから取得し、接
続に用いるコードを追加しよう
– 自分の隣の PC の IP は認証サーバから取得
– この時間中に終らそう!!
コード概要 1/4
• コンパイル方法
–
–
–
–
–
–
コンソール上で、、、
javac jp/ac/keio/sfc/ht/mobile/yamanote/client/*.java
javac jp/ac/keio/sfc/ht/mobile/yamanote/serever/*.java
javac jp/ac/keio/sfc/ht/mobile/yamanote/util/*.java
javac jp/ac/keio/sfc/ht/mobile/yamanote/connect/*.java
javac jp/ac/keio/sfc/ht/mobile/yamanote/connect/socket/*.java
• 実行方法
– サーバ
– java jp/ac/keio/sfc/ht/mobile/yamanote/server/Main port番号
– クライアント
– java jp/ac/keio/sfc/ht/mobile/yamanote/client/Main serverIP port番号
コード概要 2/4
• 次に接続するホストの IP を取得するメソッド
– jp/ac/keio/sfc/ht/mobile/client/ServerConnection.java
にある next() で処理
– String next():次のホストの IP を返り値として返す
• 次ホストへ情報を渡すメソッド
– jp/ac/keio/sfc/ht/mobile/client/YamanoteCanvas.java に
ある passToken()で処理
– peer.passToken(next):引数 next へ接続先 IP を渡す
コード概要 3/4
• jp/ac/keio/sfc/ht/mobile/client/YamanoteCanvas.ja
va
・
・
ServerConnection sender;
String next;
・
・
public void passToken(){
・
・
sender = new ServerConnection(server_addr, port);
・
・
・
System.out.println("next :"+next);
peer.passToken(next);//次の接続先の IP を next として渡してあげる
}
が、next には何も値が代入されていない!
next に次のホストの IP を代入してあげよう
コード概要 4/4
• JAVAにおける他クラスのメソッドの呼び方
– メソッド : インスタンスメソッドとスタティックメソッドの二種類
– インスタンスメソッドで呼び出す場合
• new でインスタンスを作成
• “インスタンス名 . メソッド名” で呼び出し可能
– ServerConnection クラスのメソッドを呼び出したい場合は、、、
ServerConnection sender;
sender = new ServerConnection(server_addr, port);
で準備(インスタンス生成)完了
– この場合で next メソッドを呼び出したいときは
sender.next();
全員で山手線演習
• SA の PC をサーバとする
• それぞれクライアントを実行し SA の PC へ
接続
• サーバの IP と待ち受け Port は、、、