c# - 如何将byte []缓冲区复合到List <byte>中?

标签 c# .net networking

因此,我正在使用大小为1024的缓冲区(byte [])通过套接字接收数据,并且如果它们大于1024字节,我想将读取组合在一起以形成整个数据包。我选择了一个列表来存储整个数据包,而我想要做的就是在读取数据时将每个缓冲区添加进去。我想这样做:

List.AddRange(Buffer);


但是,如果缓冲区未满,则会将一堆空字节填充到末尾。因此,我自然希望只向列表中添加一定范围的字节,但是没有这种方法。我总是可以创建一个与接收到的字节数完全相同的临时字节数组,然后使用AddRange()获得我想要的结果,但是对我来说这似乎很愚蠢。更不用说它会在每次读取数据时创建然后丢弃一个数组,这对可伸缩的多用户服务器的性能不利。

有没有办法做到这一点的名单?还是我可以使用其他数据结构?

最佳答案

如果您使用的是C#3.5(LINQ)

list.AddRange(buffer.Take(count));

关于c# - 如何将byte []缓冲区复合到List <byte>中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/612283/

相关文章:

javascript - Angular.js $resource 与 ASP.Net webapi?

c# - 将某个 JSON 值映射到枚举值 C#

c# - C# 中泛型 Lazy 类的协变使用

c# - 如何在 .NET 中远程逐行读取文件?

c# - 需要有关树状结构数据检索的帮助

c# - 对要分配给 Combobox 的列表进行排序

java - 多客户端广播中的 MulticastSocket 与 DatagramSocket

kubernetes - 无法从一个集群访问另一个集群的 Kubernetes 服务(通过 VPC 对等互连)

c# - 机器的 .net 核心 cpu 使用率

linux - 如何在多个Linux系统上同时运行同一个脚本