客户端:
import java.io.FileInputStream; import java.net.Socket; /** * Created by 290248126 on 14-5-11. */ public class Client { public static void main(String[] args) throws Exception { FileInputStream fileInputStream = new FileInputStream("e:/1.png"); Socket socket = new Socket("localhost", 8088); byte[] buff = new byte[1024]; int length; while ((length = fileInputStream.read(buff)) != -1) { socket.getOutputStream().write(buff, 0, length); } //至关重要,告诉服务器,客户端已经发送完毕 socket.shutdownOutput(); //获取服务器发过来的提示信息 length = socket.getInputStream().read(buff); System.out.println("服务器:" + new String(buff, 0, length)); socket.close(); fileInputStream.close(); } }
服务器:
import java.io.FileOutputStream; import java.net.ServerSocket; import java.net.Socket; /** * Created by 290248126 on 14-5-11. */ public class Server { public static void main(String[] args) throws Exception { FileOutputStream fileOutputStream = new FileOutputStream("e:/2.png"); ServerSocket serverSocket = new ServerSocket(8088); Socket socket = serverSocket.accept(); byte[] buff = new byte[1024]; int length; //客户端代码中调用了socket的shutdownOutput()方法,使返回-1,循环结束 while ((length = socket.getInputStream().read(buff)) != -1) { fileOutputStream.write(buff, 0, length); } socket.getOutputStream().write("文件上传成功!".getBytes()); fileOutputStream.close(); socket.close(); serverSocket.close(); } }