问题:我想知道如何从流中获取所有数据。
我正在将数据从异步客户端套接字的BeginSend
方法发送到客户端的方法BeginReceive
。现在的目标是获取通过流的所有字节。
我创建了一个StateObject
类,其中包括一个缓冲区字段类型byte[]
,并且它具有固定长度(当前设置为 2048)。
那么如何将检索到的字节传递给该字段呢?请记住,数据是零散的,而不是一次性的。
我必须将所有字节构造回来,因为它们是从服务器发送的。
我可以使用Array.Copy()
orBuffer.BlockCopy
方法,它可以完成工作吗?
关键是我必须考虑多个条件:
假设 buffer[2048] 的所有索引都设置为 0
在第一次复制中,起始索引将为 0(然后添加从流中获取的字节)
在所有接下来的复制中,起始索引必须是数组中的第一个零(或者换句话说,所有先前复制到数组的字节的总和 - 1)。
如何做到这一点?