客戶端:
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
/**
* Created by Administrator on 2020/6/30.
*/
public class socket_file01 {
public static void main(String[] args) throws IOException {
File file =getfile();
Socket socket = new Socket("127.0.0.1",12345);
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintStream ps = new PrintStream(socket.getOutputStream()); //輸出流
ps.println(file.getName());
String result = br.readLine();
if("存在".equals(result)){
System.out.println("上傳的文件已經存在");
socket.close();
return;
}
FileInputStream fis =new FileInputStream(file);
byte[] arr =new byte[8192];
int len;
while ((len=fis.read(arr))!=-1){
ps.write(arr,0,len);
}
fis.close();
socket.close();
}
private static File getfile() {
Scanner sc = new Scanner(System.in);
System.out.println("輸入文件路徑");
while (true){
String line = sc.nextLine();
File file = new File(line);
if (!file.exists()) {
System.out.println("文件不存在");
}else if(file.isDirectory()){
System.out.println("錄入的爲文件夾");
}else {
return file;
}
}
}
}
服務器端:
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
* Created by Administrator on 2020/6/30.
*/
public class socket_file02 {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(12345) ;
System.out.println("服務器啓動");
while (true){
Socket socket = server.accept();
new Thread(){
public void run(){
try {
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
PrintStream ps = new PrintStream(socket.getOutputStream()); //輸出流
String filename = br.readLine();
File dir = new File("updta");
dir.mkdir(); //創建文件夾
File file = new File(dir,filename);
if(file.exists()){
ps.println("存在");
socket.close();
return;
}else{
ps.println("不存在");
}
FileOutputStream fos = new FileOutputStream(file);
byte[] arr =new byte[8192];
int len;
while ((len=is.read(arr))!=-1){
fos.write(arr,0,len);
}
fos.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
}
}