什么是“从当前流中读取一个字符串。字符串有长度前缀,一次 7 位地被编码为整数。”

来探索一下:

写一段简单的程序:

FileStream fs= new FileStream("d:\\qqq.txt",FileMode.Create);
          var bw = new BinaryWriter(fs, Encoding.UTF8);//通常情况下可以不写编码 这里加上便于理解
          bw.Write("hello world!");
          Console.WriteLine("成功写入");
          bw.Close();
          fs.Close();

FileStream fs2 = new FileStream("d:\\qqq.txt", FileMode.Open);
          var br = new BinaryReader(fs, Encoding.UTF8);
          Console.WriteLine(br.ReadString());

1.在写入文件的时候指定或默认编码,这样字符就可以转换为字符集对应编码(ASCII 八进制 十六进制)

传输或者保存的时候就会保存为相应的标准可传输的进制(再从这些进制转到二进制,网络传输用二进制)

2.用编辑器打开时,默认的会给我们转到10进制,转成字符集所对应的显示文字。(计算机很聪明 做事很得体 妹子都喜欢这样的男朋友吧)

ps:

来看下刚才写得qqq.txt文件,

用UE查看 开头)16进制 0C = 10进制 12,正好是字符长度.

来看一下 BinaryWriter.Write

读写遥相呼应,配合使用。

其他的重载也是一样的用法。

==================================进阶研究==================================

byte[] buffer = new byte[512];
                       while ((size = netstream.Read(buffer, 0, buffer.Length))>0)
                       {
                           fs.Write(buffer, 0, size);
                           len += size;
                       }

var br = new BinaryReader(netstream);
Console.WriteLine(br.ReadString());

从同一个stream上取数据这两个方法 得到结果却不一样, 为什么呢?

Read 只会返回byte[]数据对象,  readstring 只能得到BinaryWriter进去的数据。

BinaryWriter 不写入内容时 readstring为何会出现乱码?

来试验几种情况

在不写BinaryWriter  情况下,接收端处理 readstring 将会把开头部分数据读到readstring中,剩余数据被read读出来。

传输开始后 netstream将会被监听

发送端加了using后  都不需要关心服务端 接收到的bytes 长度是否大于0,(猜想传输监听有两种方法1通过是否还有数据传过来,2.close、dispose状态的级别更高,直接关闭掉)

最新文章

  1. 【leetcode】Find Minimum in Rotated Sorted Array I&&II
  2. 厚积薄发,拥抱 .NET 2016
  3. SQL Server 2008 R2——VC++ ADO 操作 存储过程 向datetime类型参数传入空值
  4. Nancy总结(一)Nancy一个轻量的MVC框架
  5. php基础-转义字符
  6. (转)offsetof与container_of宏[总结]
  7. M面经Prepare: Find integer Average of 2 integers.
  8. [转] c#中 多线程访问winform控件
  9. Android 自定义Spinner和其下拉窗口
  10. c语言指针与结构体
  11. ShellExecuteEx的使用方法
  12. 在java中json的使用案例
  13. json 和 数组的区别
  14. Android内存泄露---检测工具篇
  15. C++ 排列最优解算法思想
  16. 关于vim的常用操作
  17. c语言相关概念
  18. redis学习笔记(一)-安装
  19. MySQL之优化
  20. Android测试(一)——Apk文件结构以及Android组件介绍

热门文章

  1. 索引与优化like查询
  2. hdu1331 按着题目的公式直接写
  3. C++ 单链表的基本算法
  4. 对ASP.Net的认识(三)
  5. 洛谷 P3399 丝绸之路
  6. Codevs 1205 单词翻转
  7. C++封装常用对象和对头文件以及预编译机制的探索
  8. jQuery遮罩层的实现
  9. 《samba搭建win客户端和linux客户端的区别》
  10. 阿里云服务器 ECS Ubuntu系统安装配置