我正在处理客户端服务器应用程序。我的应用程序正在处理可变大小的数据包,每个数据包都有一个头部和一个可变长度的有效载荷Recv环形缓冲区vs简单缓冲区
我的困境是什么是在recv时处理数据包的最佳方法。 我遇到的大多数教程都建议使用环形缓冲区,但据我所知,使用缓冲区的效率更高,因为缓冲区的大小是您可以处理的最大数据包大小的两倍。
如果我使用环形缓冲器我需要的recv附加的缓冲,然后我需要缓冲器复制在环形缓冲器,这意味着我需要做一个或两个memcpys插入缓冲器在环形缓冲器
如果我使用单缓冲区方法,则只需要一个缓冲区,我可以将它传递给recv调用,当memoove调用将数据移动到缓冲区的起始处时,当我得到一个完整的数据包时,仍然有数据属于另一个数据包缓冲。
我错了吗?
PS。如果您可以指向任何源代码/示例,其中处理可变长度数据包将有所帮助。
这是TCP还是UDP? – 2012-03-19 17:42:20
@KarolyHorvath它的TCP – 2012-03-19 17:47:16
为什么投票? – 2012-03-19 18:35:49