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("服务端成功关闭"); } }