我现在用的LWIP TCP服务器,有一个数据传输问题,麻烦v各位大神指导下。问题:网口接收数据时,只能接受1.5k的数据。大概描述:如果发送1.5k的数据,可以全部接收到,如果发送2k的数据, 只能接收到最后面的0.5k,同理,发送3.5k也只能接收到最后的0.5k,我的理解是数据接收的缓存区只有1.5k,数据多了会更新。但是我找到了DMA描述符的数据缓存区大小,还有pbuf的数据缓存区大小等有关缓存大小的,都不行。
有大神指点我说分包接收,一次只接收1.5k,但是这个怎么实现呢,比如PC端发送了2k的数据过来,我怎么实现分包接收呢,还请指点下,谢谢~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我这边的接收流程是这样的:网卡接收一包数据后会产生一个硬件中断,中断处理函数中释放一个信号量,ethernetif_input线程检测到信号量被释放后会调用low_level_input函数将数据包接收下来,然后送到协议栈入口函数中进行处理
我也是新手,看了一下原子的例程,没看出什么问题,等大神来解答吧,帮顶
一周热门 更多>