40 stm32f103 LWIP 2.0.2 TCP收发问题

发布于 2020-07-14 13:25:56

TCP收发参考了官方例程,具体网络部分配置如下:
TCP收发线程刚开始正常,过一会儿没有收发之后,服务器再发就收不到了 感觉接收线程阻塞活休眠了一样,有时候一点也收不到 有时候收到一两包

/ Network /

/ Socket abstraction layer /

define RT_USING_SAL

/ protocol stack implement /

define SAL_USING_LWIP

define SAL_USING_POSIX

/ Network interface device /

define RT_USING_NETDEV

define NETDEV_USING_IFCONFIG

define NETDEV_USING_PING

define NETDEV_USING_NETSTAT

define NETDEV_USING_AUTO_DEFAULT

define NETDEV_IPV4 1

define NETDEV_IPV6 0

/ light weight TCP/IP stack /

define RT_USING_LWIP

define RT_USING_LWIP202

define RT_LWIP_IGMP

define RT_LWIP_ICMP

define RT_LWIP_DNS

define RT_LWIP_DHCP

define IP_SOF_BROADCAST 1

define IP_SOF_BROADCAST_RECV 1

/ Static IPv4 Address /

define RT_LWIP_IPADDR "192.168.1.30"

define RT_LWIP_GWADDR "192.168.1.1"

define RT_LWIP_MSKADDR "255.255.255.0"

define RT_LWIP_UDP

define RT_LWIP_TCP

define RT_LWIP_RAW

define RT_MEMP_NUM_NETCONN 3

define RT_LWIP_PBUF_NUM 8

define RT_LWIP_RAW_PCB_NUM 2

define RT_LWIP_UDP_PCB_NUM 2

define RT_LWIP_TCP_PCB_NUM 2

define RT_LWIP_TCP_SEG_NUM 30

define RT_LWIP_TCP_SND_BUF 8196

define RT_LWIP_TCP_WND 8196

define RT_LWIP_TCPTHREAD_PRIORITY 10

define RT_LWIP_TCPTHREAD_MBOX_SIZE 8

define RT_LWIP_TCPTHREAD_STACKSIZE 1024

define RT_LWIP_ETHTHREAD_PRIORITY 12

define RT_LWIP_ETHTHREAD_STACKSIZE 1024

define RT_LWIP_ETHTHREAD_MBOX_SIZE 8

define LWIP_NETIF_STATUS_CALLBACK 1

define LWIP_NETIF_LINK_CALLBACK 1

define SO_REUSE 1

define LWIP_SO_RCVTIMEO 1

define LWIP_SO_SNDTIMEO 1

define LWIP_SO_RCVBUF 1

define LWIP_NETIF_LOOPBACK 0

define RT_LWIP_USING_PING

/ AT commands /

查看更多

关注者
0
被浏览
205
4 个回答
sgf201
sgf201 认证专家 2020-07-15

服务器和开发板之间是什么样的连接关系呢,长时间没有数据发送的话tcp有可能会断开处理的,试试socket建立的时候keepalive设置下,维持下链接

liuzhuomju
liuzhuomju 2020-07-14

附加:一直收发的情况下 收发都是正常的
一旦停下来一段时间 就会出问题

fores
fores 2020-07-14

有无可能是因为线程被抢占了?

fhqmcu
fhqmcu 认证专家 2020-07-17

把应用程序的tcp线程的堆栈调整到4096。看我发的帖子,有关于网络这部分测试发现的一些问题,可以参考对照一下。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友