目前接触一个项目环境是ucos + lwip ,应用层是snmp代理(这部分已经写好了)。
有个问题,诚心请教!
目前是这样测试的 ,lwip中有udp pcb 控制块(链表连接起来)类似于BSD中的socket,现在的问题是:我新建了一个udp_pcb控制块,然后绑定本地端口1025。接着就让程序跑起来(全部程序中仅一个udp pcb),在网卡中断中有打印当前这个控制块绑定的端口号即udp_pcbs->local_port,起初这个值倒是正确的,后来被改成0了。请问有人知道怎么回事么,因为本地的控制块端口被改掉了,所以在udp_input这个函数中即使有收到发向1025的数据包,因为送来的数据包中的目的端口和本地UDP_PCB->local_port不一致,这个包会被丢弃。这个测试程序基本上是跑了10分钟左右,然后就死掉了。有人知道怎么回事吗,谢谢 |