完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
描述:改自realtouch的代码,用作服务器端,使用tcpip通信,上位机连接一段时间后,会自动断开,无法收发数据,上位机报错the network connection was closed by the peer,下位机报错-12或者-13,此时可以ping通。这是什么原因? static void tcpserv_thread_entry(void* parameter) finsh /> 此时,ping是正常的 |
|
相关推荐
4个回答
|
|
log2:
lwip_accept(0)… lwip_accept(0) returning new sock=1 addr=192.168.1.20 port=43217 lwip_recvfrom(1, 20011170, 2048, 0x0, ..) lwip_recvfrom: top while sock->lastdata=00000000 lwip_recvfrom: netconn_recv err=0, netbuf=200178b0 lwip_recvfrom: buflen=8 len=2048 off=0 sock->lastoffset=0 lwip_recvfrom(1): addr=192.168.1.20 port=43217 len=8 lwip_recvfrom: deleting netbuf=200178b0 lwip_send(1, data=2000e290, size=2, flags=0x0) lwip_send(1) err=0 written=2 lwip_send(1, data=2001197c, size=8, flags=0x0) lwip_send(1) err=0 written=8 lwip_close(1) lwip_accept(0)… lwip_accept(0) returning new sock=1 addr=192.168.1.20 port=43120 lwip_recvfrom(1, 20011170, 2048, 0x0, ..) lwip_recvfrom: top while sock->lastdata=00000000 lwip_recvfrom: netconn_recv err=-12, netbuf=00000000 lwip_recvfrom(1): buf == NULL, error is “Connection closed.”! lwip_close(1) lwip_accept(0)… lwip_accept(0) returning new sock=1 addr=192.168.1.20 port=43121 lwip_recvfrom(1, 20011170, 2048, 0x0, ..) lwip_recvfrom: top while sock->lastdata=00000000 lwip_recvfrom: netconn_recv err=-12, netbuf=00000000 lwip_recvfrom(1): buf == NULL, error is “Connection closed.”! lwip_close(1) lwip_accept(0)… lwip_accept(0) returning new sock=1 addr=192.168.1.20 port=43122 lwip_recvfrom(1, 20011170, 2048, 0x0, ..) lwip_recvfrom: top while sock->lastdata=00000000 lwip_recvfrom: netconn_recv err=-12, netbuf=00000000 lwip_recvfrom(1): buf == NULL, error is “Connection closed.”! lwip_close(1) lwip_accept(0)… lwip_accept(0) returning new sock=1 addr=192.168.1.20 port=43219 lwip_recvfrom(1, 20011170, 2048, 0x0, ..) lwip_recvfrom: top while sock->lastdata=00000000 lwip_recvfrom: netconn_recv err=0, netbuf=200178b0 lwip_recvfrom: buflen=8 len=2048 off=0 sock->lastoffset=0 lwip_recvfrom(1): addr=192.168.1.20 port=43219 len=8 lwip_recvfrom: deleting netbuf=200178b0 lwip_send(1, data=2000e290, size=2, flags=0x0) lwip_send(1) err=0 written=2 lwip_send(1, data=2001197c, size=8, flags=0x0) lwip_send(1) err=0 written=8 lwip_close(1) lwip_accept(0)… lwip_accept(0): netconn_peer failed, err=-13 lwip_recvfrom(-1, 20011170, 2048, 0x0, ..) get_socket(-1): invalid lwip_send(-1, data=2000e290, size=2, flags=0x0) get_socket(-1): invalid lwip_send(-1, data=2001197c, size=8, flags=0x0) get_socket(-1): invalid lwip_close(-1) get_socket(-1): invalid lwip_accept(0)… lwip_accept(0) returning new sock=1 addr=192.168.1.20 port=43124 lwip_recvfrom(1, 20011170, 2048, 0x0, ..) lwip_recvfrom: top while sock->lastdata=00000000 finsh /> finsh /> |
|
|
|
received_len =0后会怎么样,分析下程序逻辑。
|
|
|
|
如果把下位机lwip的log打开,更容易出现这个现象,像是下位机反应比较慢,上位机连接频繁的时候,更容易出现。不知道下位机发送的过程中,上位机断掉连接会怎么样?好像是上位机提前断掉连接造成的
|
|
|
|
lwIP这边不要使用RT的内存管理,不打补丁会造成多个TIME_WAIT状态的TCP连接。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【Vision Board创客营连载体验】RA8D1-Vision Board上OSPI-Flash实践
938 浏览 0 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 应用层更改引脚复用的方法
3471 浏览 0 评论
1536 浏览 0 评论
【英飞凌PSoC 6 RTT开发板试用】串口测试标准输入输出重定向
1159 浏览 0 评论
5666 浏览 0 评论
57363 浏览 21 评论
【参与有奖】激扬代码,千元现金!RT-Thread主题征文大赛
57293 浏览 88 评论
野火 ISO STM32资料合集(程序、原理图、项目初高级篇)
18498 浏览 47 评论
282066 浏览 76 评论
51917 浏览 31 评论
16100 浏览 53 评论
13338 浏览 50 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-22 19:16 , Processed in 0.620693 second(s), Total 43, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号