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

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

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

  向客户端回写:

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

  客户端接收:

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

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

  向客户端回写:  

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

  客户端接收

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

区别:  

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

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

  

最新文章

  1. AndroidTips-052:.aar文件依赖
  2. [C#] C# 知识回顾 - 序列化
  3. Android Studio导入第三方类库的方法(转)
  4. Torch7学习笔记(二)nn Package
  5. Windows 10升级如何立即进行,不用等微软分批推送?
  6. Python学习-day2
  7. centos终端中mysql中文显示乱码的处理
  8. 小白学Linux--虚拟机下安装Ubuntu16
  9. 【WPF】无边框窗体
  10. windows下根据端口号杀死进程
  11. JS 学习笔记--10---基本包装类型
  12. Example017简单的下拉框
  13. HALCON学习-下载、安装
  14. 用 Freemarker 生成 word 文档
  15. django 2.接口之工作原理
  16. SpringCloud(2)---SpringCloud入门篇
  17. Linux基础学习(一)__后台运行Python文件
  18. Nginx 反向代理 -- 一路上的坑
  19. 新的WireGuard快照发布
  20. VS2017一步一步断点调试解决Dapper语句出现的Bug

热门文章

  1. this与super关键字总结
  2. SweetWeather wpf天气预报源代码
  3. MySQL-5.7 Insert语句详解
  4. JMS、MQ、ActiveMQ
  5. 验证环境中的program为什么必须是automatic
  6. java鲁棒性(健壮性)
  7. 关于div可编辑的复制粘贴问题
  8. react-native navigation的学习与使用
  9. segment fault本质
  10. Sub-process /usr/bin/dpkg returned an error code (1) 如何解决