【问题标题】:What data type is good for a IO buffer in C#什么数据类型适合 C# 中的 IO 缓冲区
【发布时间】:2014-06-02 12:06:07
【问题描述】:

我在 C# 中使用异步套接字 API。在客户端,我需要一个缓冲区来存储从服务器读取的二进制数据。其他客户端逻辑会检查缓冲区,解包头部查看长度,如果长度小于头部指示的长度,则继续。下次我们再次检查缓冲区。对于网络逻辑,我需要维护这个缓冲区,我想知道我应该使用什么数据类型。

在 python 中,我们使用字符串作为缓冲区,但我认为这在 C# 中行不通。效率低,编码问题(我需要自己解析二进制数据,不一定是字符串),经常改。字符串生成器呢?还有其他建议吗?

【问题讨论】:

  • 使用byte[],它恰好是套接字 I/O 的自然数据类型。
  • @EugenRieck 为什么要在评论中给出答案?
  • @EugenRieck 这需要管理缓冲区,例如 startIndex 和 Length。并且数组的长度是固定的,那么通信流量脉冲呢?
  • 有一个类叫做 BinaryReader 和 BinaryWriter 专门用来处理原始数据类型
  • @AndrewShepherd,因为它是 hort 且非原创的

标签: c# python sockets io


【解决方案1】:

我会使用byte[]。它会完成工作。

【讨论】:

    猜你喜欢
    • 2018-10-03
    • 2012-01-19
    • 2014-09-12
    • 2022-01-17
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    相关资源
    最近更新 更多