kingreat 发表于 2012-7-19 22:31:42

求解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);
}
......

}

kingreat 发表于 2012-7-20 11:17:58

顶起!

各位都用哪个协议栈。

kingreat 发表于 2012-7-20 19:14:32

高手在哪里?
帮忙猜想下原因也好啊!!!!
提供下思路也好。。。。。

fengyunyu 发表于 2014-4-30 22:23:35

LZ找到原因了没有?

kingreat 发表于 2014-5-10 00:47:54

至今未找到原因
后来发现TCP必须用大数据包发送数据,可以大大减少出现内存溢出的可能性。

fengyunyu 发表于 2014-5-10 07:00:19

本帖最后由 fengyunyu 于 2014-5-10 07:04 编辑

kingreat 发表于 2014-5-10 00:47
至今未找到原因
后来发现TCP必须用大数据包发送数据,可以大大减少出现内存溢出的可能性。 ...

这样的话,就没用使用lwip了?

另外“设备不断的往PC上发数据”,是用tcp_write发送么?tcp_write返回值没有报错么?

kingreat 发表于 2014-6-13 11:11:28

fengyunyu 发表于 2014-5-10 07:00
这样的话,就没用使用lwip了?

另外“设备不断的往PC上发数据”,是用tcp_write发送么?tcp_write返回值 ...

一直在使用

fengyunyu 发表于 2014-6-13 11:17:26

kingreat 发表于 2014-6-13 11:11
一直在使用

有问题还用?靠看门狗解决么?另外“后来发现TCP必须用大数据包发送数据,可以大大减少出现内存溢出的可能性。”,请教“大数据包"指的是什么?

kingreat 发表于 2014-6-13 11:30:07

fengyunyu 发表于 2014-6-13 11:17
有问题还用?靠看门狗解决么?另外“后来发现TCP必须用大数据包发送数据,可以大大减少出现内存溢出的可 ...

就是每次发送的数据多一点,比如1Kbytes

fengyunyu 发表于 2014-6-13 11:37:24

kingreat 发表于 2014-6-13 11:30
就是每次发送的数据多一点,比如1Kbytes

你是用raw模式、还是netconn、还是socket?

kingreat 发表于 2014-6-13 11:55:52

fengyunyu 发表于 2014-6-13 11:37
你是用raw模式、还是netconn、还是socket?

我用的是RAW模式
页: [1]
查看完整版本: 求解LwIP协议栈奇怪的死循环的问题