Socket在接收数据,接收缓冲区里之前的数据没清除

Socket在接收数据,接收缓冲区里之前的数据没有清除
如题,Socket用recv接收数据时,接收缓冲区里之前的数据没有清除掉,下次接收数据,仍然带有之前的数据,当接收缓冲区满了的时候,发现就不能接收新发送的数据了,求大神解惑
------解决方案--------------------
每次接收完数据后,就清零一下缓冲区
------解决方案--------------------
引用:
Quote: 引用:

每次接收完数据后,就清零一下缓冲区

我用了memset清零了,还是一样,发送几次数据后,接收端就收不到新的数据了,都是之前已经发送过的
不可能的,你贴下代码
------解决方案--------------------
缓冲区清零没有用,清零和不清零一个样。你这里的缓冲区是用户层的缓冲区,只要指定了地址和长度就可以用来接收,和里面的既有内容无关。接收成功后,通过接收函数的返回值来判断接收到的长度,缓冲区中在此长度范围以内的就是接收到的数据,范围外的可能保持原来的值----保持不保持都没有关系。

你本次的接收收到了上次的数据,要么数据就是这么来发送的要么是你没看准长度以为重复了