TCP连接的时候,发送速度太快会接收不到数据是怎么回事?
时间:10-02
整理:3721RD
点击:
大家好!请问一下,我电脑端做服务器,CC3000客户端,TCP连接。
服务器端不断的以包头+包体的形式发送数据包给客户端,客户端处理完数据后再以包头+包体返回给客户端。一直循环。
问题出在下图1位置,服务器发送完数据了,但是客户端会出现收不到的情况,就是IRQ没有下降沿,函数一直停留在等待接收阶段。也就是卡在SimpleLinkWaitEvent这个函数这边。
进过测试,当延迟函数Delay(n) (毫秒)的n越大,越不会卡,当n>800时,可以顺畅运行。
请问这是为什么?
当n = 100时,循环发送和接收 20-50 次之后就没有IRQ下降沿收到。.
当n = 300时,循环发送和接收 200-250 次之后就没有IRQ下降沿收到。.
当n = 500时,循环发送和接收 500-600 次之后就没有IRQ下降沿收到。
当n = 800时,一直可以循环发送和接收。
那就是说n在一个比较大的时候就可以正常工作了,如果可以用一个判断函数,判断收到下降沿的延时不就可以了。
问一下,CC3000是CC3200吗?我只用过CC3200.
那你CC3200,tcp连接的时候,不需要延迟,while循环不断的收发数据可以正常运行吗?
你服务器发送数据的频率是多少,CC3000的处理能力有限,不适合于大压力的数据传输。