• java 网络编程(五)----TCP进阶篇上传文本文件


    设计需求:从客户端上传txt文件到服务器,服务端收到文件后,发送消息给客户端接收完成。

    1. 服务器端:

    public class UpLoadFileServer {

    public static void main(String[] args) throws Exception {

    ServerSocket ss = new ServerSocket(10010);

    Socket s =ss.accept();

    BufferedReader bufin = new BufferedReader(new InputStreamReader(s.getInputStream()));

    BufferedWriter bufw =new BufferedWriter(new FileWriter("D:\server.txt"));

    String line1 =null;

    while((line1=bufin.readLine())!=null)
    {
    bufw.write(line1,0,line1.length());
    }

    System.out.println("服务端接收完了。。。。");
    PrintWriter out = new PrintWriter(s.getOutputStream(),true);
    out.println("上传成功");
    System.out.println("服务端反馈客户端完了。。。。");

    bufw.close();


    s.close();
    ss.close();

    }
    }

    2. 客户端:

    public class UploadFileClient {

    public static void main(String[] args) throws Exception {

    Socket s = new Socket("192.168.5.163",10010);

    File file =new File("d:\1.txt");

    BufferedReader buffer =new BufferedReader(new FileReader(file));

    PrintWriter out = new PrintWriter(s.getOutputStream(),true);

    String line =null;

    while((line=buffer.readLine())!=null)
    {
    out.println(line);
    System.out.println("客户端读取文件里的内容"+line);
    }

    System.out.println("客户端发完了 。。。。。");
    BufferedReader bufin = new BufferedReader(new InputStreamReader(s.getInputStream()));
    s.shutdownOutput();
    String result=bufin.readLine();
    System.out.println("客户端接收到了服务器的数据了 。。。。。");
    System.out.println(result);

    buffer.close();
    s.close();
    }
    }

       小总结:之前运行一直不成功,进行调试发现,是客户端这边数据已经传输完了,但是服务器端还一直在等待客户端继续传递数据过来,而且一直没有把接收到的数据写到文件内。后在客户端增加:s.shutdownOutput();就能成功上传文件。

  • 相关阅读:
    Hystrix高可用系统容错框架,资源隔离,熔断,限流
    Leecode no.25 K 个一组翻转链表
    no.1 Web浏览器
    源码解析-JavaNIO之Buffer,Channel
    Leecode no.24 两两交换链表中的节点
    Kafka RocketMQ 是推还是拉?
    Leecode no.23 合并K个升序链表
    图解计算机底层IO过程及JavaNIO
    Leecode no.21 合并两个有序链表
    AcWing每日一题--摘花生
  • 原文地址:https://www.cnblogs.com/loleina/p/5174973.html
Copyright © 2020-2023  润新知