package liu.net.udpupload;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class UploadClient {
public static void main(String[] args) throws UnknownHostException, IOException {
/* 上传文本的客户端。读取本地文本数据,发送给服务端,服务端接收完毕后,回馈“上传成功” */
System.out.println("客户端启动。。。");
//客户端 socket
Socket s = new Socket("127.0.0.1",8890);
//1.确定数据源,本地文件
BufferedReader bufr = new BufferedReader(new FileReader("text.txt"));
//2.确定目的地 socket 输出流
//BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
String line = null;
while((line=bufr.readLine())!=null){
pw.println(line);
}
//用socket的禁用流输出方法,告诉服务端文件传说完成,否则服务端不知道文件传输完成
s.shutdownOutput();
//3.通过 socket 读取服务端返回的数据
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String lineIn = bufIn.readLine();
System.out.println(lineIn);
//关闭
bufr.close();
s.close();
System.out.println("客户端关闭成功");
}
}
package liu.net.udpupload;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class UploadServer {
public static void main(String[] args) throws IOException {
//上传文本到服务端,服务端接收数据并存储到文件中,服务端接收完毕后,服务端回馈“接收成功”
System.out.println("服务端启动。。。");
//1.服务端对象
ServerSocket ss= new ServerSocket(8890);
//2.获取客户端
Socket s = ss.accept();
//3.获取读取流
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
//4.确定目的文件
PrintWriter pw = new PrintWriter(new FileWriter("server.txt"),true);
//5.频繁读写
String line = null;
while((line=bufIn.readLine())!=null){
pw.println(line);
}
//6.给客户端返回信息
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
out.println("上传成功");
//7.关闭资源
pw.close();
s.close();
ss.close();
System.out.println("服务端成功关闭");
}
}