客户端:
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();
}
}
Java Socket文件上传