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) {
if (args.length < 2) {
args = new String[2];
args[0] = "127.0.0.1";
args[1] = "9999";
}
new TimeClient(args[0],args[1]);
}
public TimeClient(String address, String strport){
Socket socket = null;// サーバ接続用ソケット
BufferedReader reader = null;
// 指定のポートに対して,ソケットを作成します
// オブジェクトinstrを作り,データ読み出しを準備します
try {
socket = new Socket(address, Integer.parseInt(strport)) ; // 第2引数は文字列を整数に変換して渡す
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
} catch (Exception e) {
System.err.println("サーバ ["+address+":"+strport+"] に接続できませんでした");
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);
}
}
}