tyj07 发表于 2016-11-18 16:58:13

发送UDP包,长时间无用户接收会使程序进入错误中断

使用的lwip版本为1.4.1.在测试的时候发现大量发送UDP时,若长时间无机器接收UDP包会使程序进入hardfault,短时间之内有机器接收则能继续正常工作。通过查看PC指针,发现错误定位在rt_malloc函数中while (lfree->used && lfree != heap_end)这一句话,像是无法再找到下一个空块了。怀疑了下是否是由于ICMP返回的未到达报文引起的问题。但是无论是注释掉RT_LWIP_ICMP,还是打开该功能好像对该问题没有任何的改变。请问各位有遇到过这样的问题么,想请教下出现这种问题的原因是什么。

vtte 发表于 2016-11-18 18:01:36

udp协议并不能知道对方有没有收到吧,除非对方给你回了信息,当然这个信息是你自己定义的。

NJ8888 发表于 2016-11-18 19:46:17

可以盲发的,你不插网线不应该死机

tyj07 发表于 2016-11-19 09:24:43

NJ8888 发表于 2016-11-18 19:46
可以盲发的,你不插网线不应该死机

请问,我的UDP_CONN的TTL在发送时为0xFF,这正常么?netconn_new(NETCONN_UDP)中开始TTL为0x03,但是经过if (TCPIP_APIMSG(&msg) != ERR_OK)之后TTL变成0xFF了,感觉不正常。
页: [1]
查看完整版本: 发送UDP包,长时间无用户接收会使程序进入错误中断