package j3; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.Socket; // Telnetクラス public class Telnet { // プログラムの本体main public static void main(String[] args){ byte[] buff = new byte[1024];//配列の定義 char[] cbuff = new char[1024];//配列の定義 Socket socket = null ;// サーバ接続用ソケット OutputStream outstr = null;// データ出力用オブジェクト BufferedReader din = null;// データ読み取り用オブジェクト boolean cont = true ; // 指定のポートに対して,ソケットを作成します // 入出力のストリームを作り,データ読み出しを準備します try{ socket = new Socket(args[0], Integer.parseInt(args[1])) ; outstr = socket.getOutputStream() ; //サーバへの送信用 din = new BufferedReader(new InputStreamReader(socket.getInputStream())) ; } catch (Exception e) { System.err.println("Network error.") ; System.exit(1) ; } // while (cont) { try { int n = System.in.read(buff); // System.out.println(new String(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 = din.read(cbuff); if (n > 0) { System.out.println(n); System.out.print(new String(cbuff)) ; System.out.flush(); } } catch(Exception e){ // 読み出し終了時にループも終了 cont = false ; } } try { din.close() ; } catch(Exception e) { System.err.println("Close failed.") ; System.exit(1) ; } } }