首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在VxWorks中为工业套接字设置保持连接选项

如何在VxWorks中为工业套接字设置保持连接选项
EN

Stack Overflow用户
提问于 2010-12-10 16:22:21
回答 2查看 3.2K关注 0票数 1

有没有办法在vxworks中为工业套接字描述符设置keepalive?我在一些文档中读到setsockopt函数中的"SOL_TCP“选项在linux中可以做这样的事情。这样的功能在VxWorks中也可用吗?如果是这样,请提供与此相关的详细信息,例如我们需要包含哪些包含文件以及如何使用此类选项等。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-07 23:28:26

从VxWorks“图书馆参考”手册(可下载):

用于流套接字的选项

以下各节讨论可用于流(TCP)套接字的套接字选项。

SO_KEEPALIVE --检测失效连接

指定TCP选项,使传输协议( SO_KEEPALIVE )启动一个计时器来检测失效连接:

代码语言:javascript
复制
 setsockopt (sock, SOL_SOCKET, SO_KEEPALIVE, &optval, sizeof (optval));

这可以防止应用程序挂起无效的连接。此选项在optval处的值是一个整数(类型为int),可以是1(开)或0(关)。通过发送由计时器触发的零长度TCP数据段来验证连接的完整性,以强制对等节点做出响应。如果对等设备在重复传输KEEPALIVE段后没有响应,则连接将被丢弃,所有协议数据结构都将被回收,在连接上休眠的进程将被唤醒,并显示ETIMEDOUT错误。

ETIMEDOUT超时可能以两种方式发生。如果尚未建立连接,则在TCPTV_KEEP_INIT.空闲后,KEEPALIVE计时器到期如果连接已建立,则当没有TCPTV_KEEP_IDLE.的流量时,KEEPALIVE计时器启动如果在间隔为TCPTV_KEEPINTVL,的TCPTV_KEEPCNT次发送times段后没有收到对等方的响应,就认为连接是无效的。参数TCPTV_KEEP_INIT,TCPTV_KEEP_IDLE,TCPTV_KEEPCNT,和TCPTV_KEEPINTVL在文件target/h/net/tcp_timer.h中定义。

票数 1
EN

Stack Overflow用户

发布于 2019-08-29 15:43:27

VxWorks6.8版本之后的IP_TCP_KEEPINTVL和TCP_KEEPIDLE,TCP_KEEPCNT选项。在以前版本的vxworks中,您可以全局更改这些值,并且创建的所有套接字都会生效。下面的问题是如何做到这一点的答案。

How to set TCP keep alive interval for a specific socket fd (Not system wide) in VxWorks?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4406906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档