服務器端:
package TCPUploadFile;
import java.io.DataInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* Created by Administrator on 2016/8/17.
*/
public class UploadServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket=new ServerSocket(10000);
Socket accept;
while ((accept=serverSocket.accept())!=null){
InputStream inputStream = accept.getInputStream();
DataInputStream dataInputStream = new DataInputStream(inputStream);
String filename = dataInputStream.readUTF();
long filesize = dataInputStream.readLong();
FileOutputStream fileOutputStream = new FileOutputStream(filename);
byte[] bytes = new byte[10240];
int len;
while (filesize>0){
len=dataInputStream.read(bytes);
fileOutputStream.write(bytes,0, (int) Math.min(filesize,len));
filesize=filesize-len;
}
accept.close();
fileOutputStream.close();
System.out.println("文件接收完畢");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
客戶端
package TCPUploadFile;
import java.io.*;
import java.net.Socket;
/**
* Created by Administrator on 2016/8/17.
*/
public class UploadClient {
public static void main(String[] args) {
try {
Socket socket = new Socket("127.0.0.1", 10000);
File file = new File("D:\\test.mp4");
OutputStream outputStream = socket.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
dataOutputStream.writeUTF(file.getName());
dataOutputStream.writeLong(file.length());
FileInputStream fileInputStream = new FileInputStream(file);
byte[] bytes = new byte[102400];
int length=0;
while ((length=fileInputStream.read(bytes))!=-1){
dataOutputStream.write(bytes,0,length);
}
System.out.println("文件上傳完畢");
} catch (IOException e) {
e.printStackTrace();
}
}
}