套接字通信中的动态缓冲区大小 - 好的或坏的想法?

时间:2014-03-23 17:25:54

标签: sockets buffer

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

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

因此缓冲区大小为message.length + 2。 在接收器方面,我可以捕获前两个字节,然后我知道还有多少我必须捕获。

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

3 个答案:

答案 0 :(得分:1)

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

在编写这些结构之前,请记住:

  1. 尺寸利用率。

  2. 支持跨平台,以避免出现字幕问题。

  3. 这是否可扩展。

答案 1 :(得分:0)

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

Here you can read more

答案 2 :(得分:0)

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