筑波大学 システム情報工学研究科 
                                       コンピュータサイエンス専攻, 電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
	http://www.coins.tsukuba.ac.jp/~syspro/2009/No6_files/echo-client-java.html
あるいは、次のページから手繰っていくこともできます。
	http://www.coins.tsukuba.ac.jp/~syspro/2009/
	http://www.coins.tsukuba.ac.jp/~yas/
   1:	
   2:	/*
   3:	        EchoClientOne.java -- 文字列を送受信するクライアント(TCP/IP版)
   4:	        ~yas/syspro/ipc/EchoClientOne.java
   5:	        Created on 2004/02/14 21:09:17
   6:	*/
   7:	
   8:	import java.net.*;
   9:	import java.io.*;
  10:	
  11:	class EchoClientOne
  12:	{
  13:	    public static void main(String argv[]) throws IOException {
  14:	        if( argv.length != 3 )
  15:	        {
  16:	            System.err.println("Usage: % java EchoClientOne host port 'message'");
  17:	            System.exit( -1 );
  18:	        }
  19:	        String server = argv[0];
  20:	        int portno = Integer.parseInt( argv[1] );
  21:	        String message = argv[2];
  22:	        echo_client_one( server, portno, message );
  23:	    }
  24:	
  25:	    public static void echo_client_one( String server, int portno, 
  26:	                                        String message )
  27:	        throws IOException
  28:	    {
  29:	        Socket sock = new Socket( server, portno );
  30:	        BufferedReader in = new BufferedReader(
  31:	            new InputStreamReader( sock.getInputStream() ));
  32:	        PrintStream out = new PrintStream( sock.getOutputStream() );
  33:	
  34:	        String sline = message + "\n";
  35:	        stdout.printf("sending: [%s]\n", sline);
  36:	        out.printf("%s", sline );
  37:	        String rline = in.readLine();
  38:	        stdout.printf("received: [%s]\n",rline);
  39:	
  40:	        in.close();
  41:	        out.close();
  42:	        sock.close();
  43:	    }
  44:	
  45:	    static java.io.BufferedReader stdin = 
  46:	        new java.io.BufferedReader( new java.io.InputStreamReader(System.in) );
  47:	    static java.io.PrintStream stdout = System.out;
  48:	    static java.io.PrintStream stderr = System.err;     
  49:	}
このプログラムの基本的な部分は、
echo-client-fdopen-one.c
と同じである。
以下に、Java のメソッド名と C の関数名の対応を示す。
| Java | C | 
| new Socket | tcp_connect() | 
| new BufferedReader(), new PrintStream() | fdopen_sock() | 
| readLine() | fgets() | 
| printf() | fprintf() | 
% cp ~yas/syspro/ipc/EchoClientOne.java . 
% javac -encoding EUC-JP EchoClientOne.java  
% java EchoClientOne 
Usage: % java EchoClientOne host port 'message'
% java EchoClientOne azalea20.coins.tsukuba.ac.jp 7 hello 
sending: [hello
]
received: [hello]
% java EchoClientOne azalea20.coins.tsukuba.ac.jp 7 exit 
sending: [exit
]
received: [exit]
% java EchoClientOne azalea20.coins.tsukuba.ac.jp 7 quit 
sending: [quit
]
received: [quit]
%