筑波大学 システム情報工学研究科 コンピュータサイエンス専攻, 電子・情報工学系 新城 靖 <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]
%