各位大牛,
我在做基于NDK的C6678的 的UDP的通信,网络调试助手连续发64Byte数据过来, 然后通过SRIO发送FPGA,回环, 最后又返回给网络调试助手。
当我发送到5000多包数据后, 下位机不再接收了,此时ping不通网络。
找了好多资料, 尝试一些解决方法
1.之前是用那个recvncfrom接收, 现在改成recvfrom接收, 这个需要从网络接收缓冲池赋值一份。结果最多能就收5700多包, 未改之前,只能接收200包
2.修改UD缓冲池大小为65500 ,仍然一样
3.网上找资料,说是应为,主线程一直占用CPU, 而基于NDK的守护线程的执行函数, 无法调用,导致无发刷新数据队列,导致堵塞
博客在此:
博客中说:
.NDK的守护任务在完成初始化后即会自动降低Task优先级至最低的IDLE Task级,若用户Task执行在高于IDLE的优先级,且一直不通过阻塞来主动放弃执行时间的话,则NDK的数据报队列状态将一直得不到更新,从而导致用户Task的socket函数无法正常接收和发送数据报
我按他给的方法,试验过,还是不能解决, 望各位大牛指导,谢谢!!!!