求解LwIP协议栈奇怪的死循环的问题
本帖最后由 kingreat 于 2012-7-19 22:37 编辑设备用LwIP协议栈,设备上建立了一个TCP server。
PC为客户端,连接设备。
设备不断的往PC上发数据,发送大约30分钟后,出现如下图所示问题。
有N多可unacked包未得到确认,但是 unacked的地址与 unacked->next地址不知为什么是一样,
这就导致在tcp_out函数中出现死循环的现象,即:
tcp_output(struct tcp_pcb *pcb)
{
struct tcp_seg *seg, *useg;
......
/* useg should point to last segment on unacked queue */
useg = pcb->unacked;
if (useg != NULL) {
for (; useg->next != NULL; useg = useg->next);
}
......
}
顶起!
各位都用哪个协议栈。 高手在哪里?
帮忙猜想下原因也好啊!!!!
提供下思路也好。。。。。
LZ找到原因了没有? 至今未找到原因
后来发现TCP必须用大数据包发送数据,可以大大减少出现内存溢出的可能性。 本帖最后由 fengyunyu 于 2014-5-10 07:04 编辑
kingreat 发表于 2014-5-10 00:47
至今未找到原因
后来发现TCP必须用大数据包发送数据,可以大大减少出现内存溢出的可能性。 ...
这样的话,就没用使用lwip了?
另外“设备不断的往PC上发数据”,是用tcp_write发送么?tcp_write返回值没有报错么? fengyunyu 发表于 2014-5-10 07:00
这样的话,就没用使用lwip了?
另外“设备不断的往PC上发数据”,是用tcp_write发送么?tcp_write返回值 ...
一直在使用 kingreat 发表于 2014-6-13 11:11
一直在使用
有问题还用?靠看门狗解决么?另外“后来发现TCP必须用大数据包发送数据,可以大大减少出现内存溢出的可能性。”,请教“大数据包"指的是什么? fengyunyu 发表于 2014-6-13 11:17
有问题还用?靠看门狗解决么?另外“后来发现TCP必须用大数据包发送数据,可以大大减少出现内存溢出的可 ...
就是每次发送的数据多一点,比如1Kbytes kingreat 发表于 2014-6-13 11:30
就是每次发送的数据多一点,比如1Kbytes
你是用raw模式、还是netconn、还是socket? fengyunyu 发表于 2014-6-13 11:37
你是用raw模式、还是netconn、还是socket?
我用的是RAW模式
页:
[1]