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