package j2;
// TimeClient.java
// ネットワーク上のサーバからデータを受け取り,そのまま画面に出力します
// 使い方java TimeClient DNS 名ポート番号
// 例java TimeClient kiku.fuis.fukui-u.ac.jp 6000
//ライブラリの利用
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
// TimeClientクラス
public class TimeClient {
// プログラムの本体main
public static void main(String[] args) {
Socket csock = null;// サーバ接続用ソケット
BufferedReader reader = null;
if (args.length < 2) {
args = new String[2];
args[0] = "127.0.0.1";
args[1] = "5555";
}
// 指定のポートに対して,ソケットを作成します
// オブジェクトinstrを作り,データ読み出しを準備します
try {
csock = new Socket(args[0], Integer.parseInt(args[1])) ; // 第2引数は文字列を整数に変換して渡す
// csock = new Socket("127.0.0.1", 5555); // ローカルホストのサーバに接続するとき
// csock = new Socket("10.104.89.61", 5555) ;//別ホストのサーバに接続する例(サーバのIPアドレスはipコマンドで調査しておく)
reader = new BufferedReader(new InputStreamReader(csock.getInputStream()));
} catch (Exception e) {
System.err.println("サーバ ["+args[0]+":"+args[1]+"] に接続できませんでした");
System.exit(1); // 異常終了(エラーで終了)なら1
}
// データの終了まで,以下のループを繰り返します
String line = null;
try {
while ((line = reader.readLine()) != null) {
System.out.println("[Reply] " + line);
}
} catch (IOException e1) {
e1.printStackTrace();
}
// コネクションを閉じます
try {
reader.close();
} catch (Exception e) {
// ネットワーククローズ失敗です
System.err.println("ネットワークのエラーです");
System.exit(1);
}
}
}