/****************************/ /* サーバへファイルを転送 */ /* (クライアント) */ /* coded by Y.Suganuma */ /****************************/ import java.io.*; import java.net.*; public class Client1 { public static void main(String[] args) { // サーバ名 if (args.length < 1) { System.out.println("***error*** サーバ名を入力してください"); System.exit(1); } else new Connect(args[0]).start(); } } /* 接続 */ class Connect extends Thread { private String hostname; public Connect(String hostname_i) { hostname = hostname_i; } public void run() { String line, f_name, str; int bt, port = 50000; try { // 接続 Socket s = new Socket(hostname, port); // ファイル名の入力 BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream())); line = in.readLine(); System.out.print(line); BufferedReader in_s = new BufferedReader(new InputStreamReader(System.in)); f_name = in_s.readLine(); PrintWriter out = new PrintWriter(s.getOutputStream(), true); out.println(f_name); // ファイル名の送信 BufferedInputStream in_f = new BufferedInputStream(new FileInputStream(f_name)); BufferedOutputStream out_f = new BufferedOutputStream(s.getOutputStream()); // ファイル内容の送信 long k = 0; while ((bt = in_f.read()) >= 0) { out_f.write(bt); k++; } out_f.flush(); System.out.println(k + " バイト送信しました"); // 接続を切る s.close(); } catch (IOException e) { System.out.println("Error : " + e); System.exit(1); } } }
/****************************/ /* サーバへファイルを転送 */ /* (サーバ) */ /* coded by Y.Suganuma */ /****************************/ import java.io.*; import java.net.*; public class Server1 { public static void main(String[] args) { int port = 50000; try { ServerSocket s_s = new ServerSocket(port); System.out.println("Ready to Transfer"); for (;;) { Socket s = s_s.accept( ); new Connect(s).start(); } } catch (Exception e) { System.out.println(e); } } } /* 新しい接続 */ class Connect extends Thread { private Socket s; public Connect(Socket s_i) { s = s_i; } public void run() { int bt; String str, f_name; try { // ファイル名 PrintWriter out = new PrintWriter(s.getOutputStream(), true); out.println("ファイル名を入力してください "); BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream())); f_name = in.readLine(); // 保存 BufferedOutputStream out_f = new BufferedOutputStream(new FileOutputStream(f_name)); BufferedInputStream in_f = new BufferedInputStream(s.getInputStream()); long k = 0; while ((bt = in_f.read()) >= 0) { out_f.write(bt); k++; } out_f.close(); System.out.println(k + " バイト受け取りました"); // 終了 s.close(); } catch (Exception e) { System.out.println(e); } } }