UploadPictureServer.java
import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class UploadPictureServer { public static void main(String[] args) throws IOException { System.out.println("服务端启动"); ServerSocket ss = new ServerSocket(8888); while(true) { Socket s = ss.accept(); //实现多个客户端并发上传,服务器端必须启动多个线程来完成 new Thread(new UploadPic(s)).start(); //任务在UploadPic.java的run()方法中 } } }UploadPic.java
import java.io.*; import java.net.Socket; public class UploadPic implements Runnable { private Socket s; public UploadPic(Socket s) { this.s = s; } @Override public void run() { try { String ip = s.getInetAddress().getHostAddress(); InputStream in = s.getInputStream(); File picFile = new File("tempfile/" + ip + "-" + System.currentTimeMillis() + ".jpg"); FileOutputStream fos = new FileOutputStream(picFile); byte[] buf = new byte[1024]; int len = 0; while ((len = in.read(buf)) != -1) { fos.write(buf, 0, len); } OutputStream out = s.getOutputStream(); out.write("上传成功".getBytes()); fos.close(); s.close(); }catch (IOException e){} } }UploadPictureClient.java
import java.io.*; import java.net.Socket; public class UploadPictureClient { public static void main(String[] args) throws IOException { System.out.println("客户端启动"); Socket socket = new Socket("127.0.0.1",8888); File picFile = new File("tempfile/th.jpg"); FileInputStream fis = new FileInputStream(picFile); OutputStream out = socket.getOutputStream(); byte[] buf = new byte[1024]; int len = 0; while((len = fis.read(buf)) != -1){ out.write(buf,0,len); } socket.shutdownOutput(); InputStream in = socket.getInputStream(); byte[] bufIn = new byte[1024]; int lenIn = in.read(bufIn); System.out.println(new String(bufIn,0,lenIn)); fis.close(); socket.close(); } }