public class test1_server { /* * 网络编程(练习) * 客户端向服务器写字符串(键盘录入),服务器(多线程)将字符串反转后写回,客户端再次读取到是反转后的字符串 */ public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(54321); System.out.println("服务器启动,绑定端口"); while (true) { final Socket socket = server.accept(); new Thread(){ public void run() { try { BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintStream ps = new PrintStream(socket.getOutputStream()); String line = br.readLine(); line = new StringBuilder(line).reverse().toString(); //字符串反转 链式编程 ps.println(line); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }.start(); } } }
public class test1_client { /* * 网络编程(练习) * 客户端向服务器写字符串(键盘录入),服务器(多线程)将字符串反转后写回,客户端再次读取到是反转后的字符串 */ public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); Socket socket = new Socket("localhost", 54321); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintStream ps = new PrintStream(socket.getOutputStream()); ps.println(sc.nextLine()); System.out.println(br.readLine()); socket.close(); } }
import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class test2_server { public static void main(String[] args) throws Exception { ServerSocket server = new ServerSocket(12333); System.out.println("服务器启动"); while (true) { final Socket socket = server.accept(); new Thread(){ public void run() { try { InputStream is = socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); PrintStream ps = new PrintStream(socket.getOutputStream()); String fileName = br.readLine(); // 读取文件名 File dir = new File("update"); dir.mkdir(); // 创建文件夹 File file = new File(dir, fileName); // 父及目录 filename if (file.exists()) { ps.println("存在"); socket.close(); return; } else { ps.println("不存在"); } FileOutputStream fos = new FileOutputStream(file); byte[] arr =new byte[8192]; int len; while ((len = is.read(arr))!= -1) { fos.write(arr, 0, len); } fos.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }.start(); } } }
public class test2_client { public static void main(String[] args) throws Exception { File file = getFile(); Socket socket = new Socket("localhost",12333); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintStream ps = new PrintStream(socket.getOutputStream()); ps.println(file.getName()); // 将文件名发送给服务器 String result = br.readLine(); if ("存在".equals(result)) { System.out.println("您上传的文件已存在!请不要重复上传"); socket.close(); return; } else { FileInputStream fis = new FileInputStream(file); byte[] arr = new byte[8192]; int len; while ((len =fis.read(arr)) != -1) { ps.write(arr,0,len); } fis.close(); socket.close(); } } private static File getFile() { Scanner sc = new Scanner(System.in); System.out.println("请输入一个文件路径:"); while (true) { String line = sc.nextLine(); File file = new File(line); if (file.exists()) { if (file.isDirectory()) { System.out.println("你输入的是文件夹,请重新输入"); } else { return file; } }else { System.out.println("你输入的文件路径不存在,请重新输入"); } } } }
原文:https://www.cnblogs.com/yaobiluo/p/11357987.html