Other Parts Discussed in Thread:CC3220SF
您好,我使用CC3220SF与上位机进行TCP通讯,此时上位机做为TCP的Server端,CC3220sf作为Client端,但我发现,如果CC3220SF只做TCP的recv的话,当上位机TCP断开(意外断开-直接关闭软件)后CC3220SF无法检测到Server断开,导致下次上位机无法连接上CC3220SF。为此我查阅文档增加了Socketd KeepAlivetime的选项,但是丝毫没有效果。status = sl_SetSockOpt(sockId, SL_SOL_SOCKET, SL_SO_KEEPALIVETIME,( _u8*) &TimeOut, sizeof(TimeOut));请问如何解决上述问题?
Kevin Qiu1:
TCP无法实时获取,一般都是用心跳包,超时时间到了后未收到心跳响应,就认为已经断开了
,
user6458813:
我以及设置了超时心跳包了。。。那个Timeout单位按照文档里说是默认5分钟,单位是秒。可是实际上如果在建立连接到断开连接的过程中双方没有发生数据传输,CC3220SF根本不知道Server断开了。请问下你们针对这个心跳包功能是否有做过测试?如果有那么测试条件是什么样的
,
Kevin Qiu1:
参考下面两个帖子
e2e.ti.com/…/2994167
e2e.ti.com/…/ccs-launchcc3220modasf-keep-alive-tcp-socket-server