rt-thread icon indicating copy to clipboard operation
rt-thread copied to clipboard

LWIP2.0.2断线无法重连问题

Open nstopb828 opened this issue 2 years ago • 3 comments

RTT做服务端监听端口成功,当应用层接收线程挂在recv函数等待接收时,如果网线断开再重连,无法接收到新的数据,排查原因可能是当前建立的sock对象句柄已被改变,底层接收中断可以接到数据但无法返回给recv函数。 尝试客户端主动断开,recv可返回接收0字节从而退出循环重新连接客户端。请问当网络异常断开时 用何机制可以退出recv从而接受新的socket连接呢?

nstopb828 avatar Dec 01 '23 06:12 nstopb828

尝试下keepalive,并设置合理的保活时间。

aozima avatar Dec 01 '23 06:12 aozima

尝试下keepalive,并设置合理的保活时间。

应该如何实现呢。首先这个合理的保活时间就找不到,如果在保活时间走完前网线就连回去了不就无效吗?其次,当保活时间走完,如何从应用层退出recv函数?

nstopb828 avatar Dec 01 '23 07:12 nstopb828

尝试下keepalive,并设置合理的保活时间。

应该如何实现呢。首先这个合理的保活时间就找不到,如果在保活时间走完前网线就连回去了不就无效吗?其次,当保活时间走完,如何从应用层退出recv函数?

nstopb828 avatar Dec 01 '23 07:12 nstopb828