package com.heima.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
import javax.print.PrintService;
public class Test20_1 {
/**用 TCP 协议写一个客户端和一个服务端,实现上传文件
* @param args
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException, IOException {
File file = getFile();
Socket socket = new Socket("127.0.0.1",6060);
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);
int len;
byte []arr = new byte [8192];
while((len = fis.read(arr)) != -1){
ps.write(arr,0,len);
}
fis.close();
socket.close();
}
public 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;
}
}
}
}
用 TCP 协议写一个客户端和一个服务端,实现上传文件
最新推荐文章于 2020-03-18 13:52:53 发布