package j2; // WRNet.java // ネットワーク上のサーバに接続し,データを送ります // その後サーバからデータを受け取り,そのまま画面に出力します // 使い方 java WRNet DNS名 ポート番号 // 例 java WRNet localhost 8000 //ライブラリの利用 import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; // Wrnetクラス public class WRNet { // プログラムの本体main public static void main(String[] args){ byte[] buff = new byte[1024];//配列の定義 Socket wrsocket = null ;// サーバ接続用ソケット InputStream instr = null;// データ読み取り用オブジェクト OutputStream outstr = null;// データ出力用オブジェクト boolean cont = true ; // 指定のポートに対して,ソケットを作成します // 入出力のストリームを作り,データ読み出しを準備します try{ wrsocket = new Socket(args[0],Integer.parseInt(args[1])) ; instr = wrsocket.getInputStream() ; outstr = wrsocket.getOutputStream() ; } catch (Exception e) { System.err.println("Network error.") ; System.exit(1) ; } // while (cont) { try { int n = System.in.read(buff); if(buff[0] == '.') cont = false ; else outstr.write(buff,0,n) ; } // 以下は例外処理です catch(Exception e){ // 例外時はプログラムを終了します System.exit(1); } } // データの終了まで,以下のループを繰り返します cont = true ; while (cont) { try { int n = instr.read(buff); System.out.write(buff, 0, n) ; } catch(Exception e){ // 読み出し終了時にループも終了 cont = false ; } } try { instr.close() ; } catch(Exception e) { System.err.println("Close failed.") ; System.exit(1) ; } } }