【问题标题】:Dynamic buffer size in socket communication - good or bad idea?套接字通信中的动态缓冲区大小 - 好主意还是坏主意?
【发布时间】:2014-03-24 18:36:53
【问题描述】:

在套接字通信中使用动态缓冲区大小是个好主意还是坏主意?

例如: 我有一个消息格式 [2 个字节:以下消息的长度][消息]

所以缓冲区大小将为 message.length+2。 在接收端,我可以捕获前两个字节,然后我知道我还需要捕获多少个字节。

这是个好主意还是坏主意 - 为什么?

【问题讨论】:

    标签: sockets buffer


    【解决方案1】:

    首先,提出数据结构总是更好的,它将用于通过套接字进行通信。您在哪里定义消息类型、消息大小和实际消息的占位符。

    在编写此类结构之前,请记住以下几点:

    1. 大小利用率。

    2. 支持跨平台,以避免字节顺序问题。

    3. 这是可扩展的吗?

    【讨论】:

      【解决方案2】:

      这只是不必要的。有 read() 方法可以定义缓冲区的偏移量和最大读取长度,还有很多其他地方可以在 API 中使用 byte[] 数组、偏移量和长度。您不需要分配大小正好合适的缓冲区。

      【讨论】:

        【解决方案3】:

        它不是坏也不是好,但它的选择问题是使用您在套接字编程中分离消息的方式,还是使用分隔符或使用固定大小的消息。有时它依赖于用例。

        Here you can read more

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-06
          • 1970-01-01
          • 1970-01-01
          • 2011-10-21
          • 2019-11-11
          • 2011-10-26
          • 2010-11-23
          • 1970-01-01
          相关资源
          最近更新 更多