请教接收不到RTCS协议栈发出的keepalive包
装置通过交换机与PC机建立TCP连接,如果把PC机端网线拔掉,装置上socket的状态依然显示connect,这种情况下应该是装置通过发送keepalive来确认此sock连接是否正常。现在做了一个测试,通过以上方式建立连接后不发送任何数据,仅抓keepalive包,但是没有接收到任何一个装置发送出的keepalive。(将keepalive时间设置为10s)。
不知道什么原因??请教各位! 没人回答,不过问题解决了。
当前应用是socket在accept之后进行setsockopt配置keepalive时间,虽然在codewarrior中查看socket状态中的keepalive时间变为设定时间,
但是实际抓包中仍然没有发送出keepalive信息,不过这种用法在vxworks上可以。
现在在创建socket之后立即使用setsockopt函数配置keepalive时间即可。还有一种解决办法就是将RTCS中的DEFAULT_KEEPALIVE宏设置为
非零值也行。 学习了,收藏备用
页:
[1]