完善资料让更多小伙伴认识你,还能领取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连接。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
413 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
1762 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1135 浏览 0 评论
1604 浏览 0 评论
1418 浏览 0 评论
74669 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 12:22 , Processed in 0.699604 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号