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); } } }