zoukankan      html  css  js  c++  java
  • java网络编程TCP传输—流操作—服务端反馈与客户端接收

      在读取完流后,服务端会向客户端返回一些数据,告诉客户端,已经写完了。

    在这里和”流操作—拿到源后的写入动作“差不多,客户端同样以byte与Buffered两种缓冲读取作为例子,同时,。也是希望大家给补充。

    1.利用OutputStream向客户端回写,客户端用byte作为缓冲接收

      向客户端回写:

    1 //获取socket输出流,将上传成功字样传给客户端
    2         OutputStream out=s.getOutputStream();
    3         out.write("上传成功".getBytes());

      客户端接收:

    1 //读取服务端返回的数据
    2         InputStream in=s.getInputStream();
    3         
    4         byte [] bufIn=new byte[1024];
    5         
    6         int lenIn=in.read(buf);
    7         
    8         String text=new String(buf,0,lenIn);
    9         System.out.println(text);

    2.利用PrintWriter向客户端回写,客户端用Buffered作为缓冲接收

      向客户端回写:  

    1 //向客户端返回数据,用PrintWriter
    2         PrintWriter out =new PrintWriter(s.getOutputStream(),true);
    3         
    4         out.println("上传成功");

      客户端接收

    1 //读取服务端返回的对象
    2         BufferedReader bufrIn =new BufferedReader(new InputStreamReader(s.getInputStream()));
    3         String str=bufrIn.readLine();
    4         System.out.println(str);

    区别:  

      1.PrintWriter作为一个便捷的字节流与字符流之间的转换工具,已经封装了转换的方法,直接使用它回写的时候,不用再使用getBytes()转换成字节流。

      2.在接受数据时,如果用byte数组接收,将得到的字节流写入数组后,得把它转化为一个String的对象,用String(数组名,第一个索引,长度),而用缓冲流接收时,需要用InputStreamReader转化,但是最后直接赋值给一个是String类型的变量就好了。综合来说,还是第二哥方法比较方便。

      

  • 相关阅读:
    POJ 1466 Girls and Boys 黑白染色 + 二分匹配 (最大独立集) 好题
    POJ2226 Muddy Fields 二分匹配 最小顶点覆盖 好题
    POJ 2195 Going Home 最小费用流 裸题
    POJ 3368 Frequent values RMQ 训练指南 好题
    POJ 3187 杨辉三角+枚举排列 好题
    POJ 2393 贪心 简单题
    系统监控
    系统的初始化和服务
    vi与vim
    正文处理命令及tar命令
  • 原文地址:https://www.cnblogs.com/Liang-Blog/p/5624941.html
Copyright © 2011-2022 走看看