0flame0 发表于 2013-11-11 11:56:22

请教接收不到RTCS协议栈发出的keepalive包

装置通过交换机与PC机建立TCP连接,如果把PC机端网线拔掉,装置上socket的状态依然显示connect,这种情况下应该是装置通过发送keepalive来确认此sock连接是否正常。
现在做了一个测试,通过以上方式建立连接后不发送任何数据,仅抓keepalive包,但是没有接收到任何一个装置发送出的keepalive。(将keepalive时间设置为10s)。
不知道什么原因??请教各位!

0flame0 发表于 2013-11-12 16:55:39

    没人回答,不过问题解决了。
    当前应用是socket在accept之后进行setsockopt配置keepalive时间,虽然在codewarrior中查看socket状态中的keepalive时间变为设定时间,
但是实际抓包中仍然没有发送出keepalive信息,不过这种用法在vxworks上可以。
    现在在创建socket之后立即使用setsockopt函数配置keepalive时间即可。还有一种解决办法就是将RTCS中的DEFAULT_KEEPALIVE宏设置为
非零值也行。

jinyi7016 发表于 2015-2-25 14:37:53

学习了,收藏备用
页: [1]
查看完整版本: 请教接收不到RTCS协议栈发出的keepalive包