////////////////////////////////////////////////////////////////////////////////
// << j722a.java >>
//
//  ネットワーク(2):クライアント
//
//  ●クライアントの機能
//  (1) サーバに接続。
//    (2) サーバから1行分のデータを受信。
//    (3) 終了。
//
//  daytimeプロトコルが対応し、daytimeサーバに接続し日時を受信する。
//
// ●クライアントの書き方
//
//  class クラス名 {
//      public static void main(String args[]) {
//        try {
//          (手順1)サーバ名とポート番号を指定しソケットを作成。
//      (手順2)ソケットに入出力ストリームを設定。
//      (手順3)サーバとの送受信。
//      (手順4)入出力ストリームを閉じる。
//      (手順5)ソケットを閉じる。
//        } catch ( Exception e ) {
//          例外処理メッセージ
//        }
//      }
//    }
//
//  ●Socketクラスのメソッド
//    public InputStream getInputStream() throws IOException
//      機能:このソケットの入力ストリームを取得する。 
//
////////////////////////////////////////////////////////////////////////////////

import java.net.*;
import java.io.*;

class j722a {
  public static void main(String args[]) {

    try { 
      // コマンドラインから、サーバ名(args[0])を取得する。
      // daytimeサーバのポート番号は13と決まっている。
      String server = args[0];
      int port = 13;

      // (手順1)サーバ名とポート番号を指定しソケットを作成。
      Socket s = new Socket(server, port); 

      // (手順2)ソケットに入力ストリームを設定。
      InputStream is = s.getInputStream();
      InputStreamReader isr = new InputStreamReader(is,"JISAutoDetect");
      BufferedReader br = new BufferedReader(isr);

      // (手順3)サーバからの受信。
      String line = br.readLine(); // サーバから1行分受信。
      System.out.println("サーバ(" + server + ")の現在時刻:" + line);

      // (手順4)入出力ストリームを閉じる。
      br.close(); isr.close(); is.close();

      // (手順5)ソケットを閉じる。
      s.close();

    } catch( Exception e ) {
      System.out.println(e);
    }
  }
}
実行結果
% javac j722a.java

% java j722a jubilo.cis.ibaraki.ac.jp
サーバ(jubilo.cis.ibaraki.ac.jp)の現在時刻:Thu Jul 15 10:36:14 2004

% java j722a sava.cis.ibaraki.ac.jp
java.net.ConnectException: Connection refused: connect