服务器端: package com.huahua; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class ServerThread extends Thread { private Socket socket; public ServerThread(Socket socket) { super(); this.socket = socket; } public void run(){ try { while(true){ DataInputStream in = new DataInputStream(socket.getInputStream()); //接收保存的路径 String path = "e://" + in.readUTF(); //接收的文件长度 long length = in.readLong(); //保存文件 DataOutputStream out = new DataOutputStream(new BufferedOutputStream( new FileOutputStream(path))); byte[] buf = new byte[1024]; int len = 0; while((len=in.read(buf))!=-1){ out.write(buf,0,buf.length); } out.flush(); out.close(); in.close(); } } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args){ try { ServerSocket serverSocket = new ServerSocket(9999); while(true){ new ServerThread(serverSocket.accept()).start(); } } catch (IOException e) { e.printStackTrace(); } } } 客户端: package com.huahua; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.net.Socket; public class Client{ public static void main(String[] args){ FileInputStream fin = null; DataOutputStream out = null; try { Socket socket = new Socket("127.0.0.1",9999); File file = new File("f://张惠妹 - 彩虹.wma"); out = new DataOutputStream(socket.getOutputStream()); //传送文件名称 out.writeUTF(file.getName()); out.flush(); //传送文件长度 out.writeLong(file.length()); out.flush(); //传送文件 fin = new FileInputStream(file); byte[] buf = new byte[1024]; int len = 0; while((len=fin.read(buf))!=-1){ out.write(buf,0,len); } out.flush(); System.out.println("文件 /"" + file.getName() + "/" 传送完毕! "); } catch (IOException e) { e.printStackTrace(); } finally{ try { out.close(); fin.close(); } catch (Exception e) { } } } }