需求:将一个类型为文本的文件读取内容后,上传至服务端(读取到另一个文件中)
分析:
需要使用到IO流技术和网络编程技术
客户端代码:
public class UploadClient {
public static void main(String[] args) throws IOException {
//1、建立客户端socket
Socket socket=new Socket("192.168.223.1",9999);
System.out.println(socket.getInetAddress().getHostAddress()+"...........connected");
//2、读取文件
BufferedReader bufr =new BufferedReader(new FileReader("client.txt"));
//3、文件输出目的
PrintWriter out =new PrintWriter(socket.getOutputStream(),true);
String line =null;
while ((line=bufr.readLine())!=null){
out.println(line);
}
//告诉服务端,客户端写完了
socket.shutdownOutput();
//4、读取服务端返回的上传成功提示
BufferedReader bufIn =new BufferedReader(new InputStreamReader(socket.getInputStream()));
String str = bufIn.readLine();
System.out.println(str);
//5、关闭资源
bufr.close();
socket.close();
}
}
服务端代码:
public class UploadServer {
public static void main(String[] args) throws IOException {
//1、创建服务端对象,必须绑定一个端口
ServerSocket ss=new ServerSocket(9999);
//2、获取连接过来的客户端对象。
Socket socket = ss.accept();
//3、读取客户端传来的数据
BufferedReader bufrIn=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//4、将读取到数据写入服务端的文件
BufferedWriter bufrw = new BufferedWriter(new FileWriter("server.txt"));
String line =null;
while ((line=bufrIn.readLine())!=null){
bufrw.write(line);
bufrw.newLine();
bufrw.flush();
}
//5、返回客户端温馨提示信息
PrintWriter out=new PrintWriter(socket.getOutputStream(),true);
out.println("上传成功..");
//6、关闭资源
bufrIn.close();
socket.close();
}
}
首先启动服务端
再启动客户端,就会收到信息