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类型的变量就好了。综合来说,还是第二哥方法比较方便。

  

 

转载于:https://www.cnblogs.com/Liang-Blog/p/5624941.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值