BinaryReader类读取网络流数据的问题

zmidl 2015-08-17 03:09:13
和下位机通讯,下位机发送byte[] 来拼成字符串, 我不知道下位机发来的byte有多少个,
所以我用ReadByte() 方法循环逐个读取然后放到List<byte> 里 但是缓冲区里如果没有byte了 就没有办法通知主线程了。
不知道 BinaryReader 类有没有 获得缓冲区大小的方法或者属性 ,让我有准备的读取指定范围的bytep[] 呢??
如果知道缓存大小 我就可以直接 ReadBytes() 一下子读取整个集合了。
...全文
257 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zmidl 2015-08-18
  • 打赏
  • 举报
回复
引用 4 楼 shingoscar 的回复:
[quote=引用 3 楼 zmidl 的回复:] [quote=引用 2 楼 shingoscar 的回复:] 直接用ReadBytes,它会返回实际读取的字节数
不对吧 byte[] BinaryReader.ReadBytes(int count) 返回的是 byte[] 类型的 一个集合 而且 参数是要指定 长度的 [/quote] 不好意思,是Read[/quote] 当读取不到时候 Read 方法没有返回-1啊
zmidl 2015-08-18
  • 打赏
  • 举报
回复
引用 5 楼 crystal_lz 的回复:
通常 ReadyByte() 读取不到的时候 不都是 返回 -1 的吗
引用 5 楼 crystal_lz 的回复:
通常 ReadyByte() 读取不到的时候 不都是 返回 -1 的吗
先别吹口哨 你确定吗??
crystal_lz 2015-08-18
  • 打赏
  • 举报
回复
通常 ReadyByte() 读取不到的时候 不都是 返回 -1 的吗
Poopaye 2015-08-18
  • 打赏
  • 举报
回复
引用 7 楼 zmidl 的回复:
当读取不到时候 Read 方法没有返回-1啊
没说-1...返回的是实际读取的字节数
zmidl 2015-08-18
  • 打赏
  • 举报
回复
问题解决了,和以前做串口的一样, read 方法有个重载, 第一个 是缓存数组 new 一个 缓存buffer 数组 放进去 就行了。
Poopaye 2015-08-17
  • 打赏
  • 举报
回复
引用 3 楼 zmidl 的回复:
[quote=引用 2 楼 shingoscar 的回复:] 直接用ReadBytes,它会返回实际读取的字节数
不对吧 byte[] BinaryReader.ReadBytes(int count) 返回的是 byte[] 类型的 一个集合 而且 参数是要指定 长度的 [/quote] 不好意思,是Read
zmidl 2015-08-17
  • 打赏
  • 举报
回复
引用 2 楼 shingoscar 的回复:
直接用ReadBytes,它会返回实际读取的字节数
不对吧 byte[] BinaryReader.ReadBytes(int count) 返回的是 byte[] 类型的 一个集合 而且 参数是要指定 长度的
Poopaye 2015-08-17
  • 打赏
  • 举报
回复
直接用ReadBytes,它会返回实际读取的字节数
zmidl 2015-08-17
  • 打赏
  • 举报
回复
是不是用 PeekChar() != -1来判断呢

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧