首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C-检测TCP套接字中断连接

C-检测TCP套接字中断连接
EN

Stack Overflow用户
提问于 2020-03-23 20:00:21
回答 2查看 724关注 0票数 0

我正在实现tcp服务器套接字。服务器与另一个设备中的客户端套接字通信。

问题是:如果连接突然中断(电缆被移除),recv()函数就不会返回。

我不能实现乒乓(心跳)机制,因为我不控制设备的实现。

在互联网上搜索了一段时间之后,我发现了这个教程:http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html

但我不完全理解家教。如果我在SO_KEEPALIVE、TCP_KEEPCNT、TCP_KEEPIDLE、TCP_KEEPINTVL上调用setsockopt(),导师说它将覆盖系统范围内的变量(tcp_keepalive_time、tcp_keepalive_intvl、tcp_keepalive_probes)。

它是否影响由另一个线程/进程创建的其他套接字?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-24 02:15:48

TCP保持活动功能确实允许您检测断开的连接.您需要显式地为您的套接字启用它,并更改默认设置,以便它能够更早地检测到断开的连接,就像您的导师所指示的那样。

,但我不完全理解导师的意思。如果我调用setsockopt() on SO_KEEPALIVETCP_KEEPCNTTCP_KEEPIDLETCP_KEEPINTVL,导师说它会覆盖系统范围的变量(tcp_keepalive_time,tcp_keepalive_intvl,tcp_keepalive_probes),它会影响其他线程/进程创建的套接字吗?

没有,setsockopt只影响作为参数传递给它的套接字。

票数 1
EN

Stack Overflow用户

发布于 2020-03-24 00:23:21

TCP没有提供检测未发送端的断开连接的好方法。如果设备使用的协议没有为服务器提供检测断开连接的任何方式,则该协议将被破坏。你所能做的就是实现一个接收超时,但这种情况很糟糕。

协议有文件吗?它说要做什么?

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

https://stackoverflow.com/questions/60824773

复制
相关文章
gitea 使用jenkins 自动ci
我目前使用的代码仓库是使用 gitea搭建而成的,详细参见https://git.zeekling.cn, 最近在看redis源码于是就想着加个自动ci的东西。
zeekling
2022/08/26
1.4K0
gitea 使用jenkins 自动ci
Jenkins实战(二):Jenkins各项配置选项
从正式使用Jenkins之前,将会逐步接触到Jenkins的各种配置,通过各种配置来完成各项不同的工作。本文将简单介绍一下Jenkins中的各项配置选项,以便后续使用过程中能够灵活使用。
xcbeyond
2020/03/26
1.5K0
iOS持续集成(CI)——Jenkins
通过终端执行 brew info jenkins 获知jenkins需要java1.7以上环境。jenkins 默认使用的端口是8080
羊羽shine
2019/05/29
1K0
eclipse里没有server选项怎么办(eclipse中没有server选项)
用eclipese写网页很多时候需要配置tomcat,但有些朋友跟着网上的教程配置发现eclipse->【Window】->【Preferences】里没有【server】从而配置不了Runtime Environment。所以需要通过eclipse进行安装。 下面给出解决办法 首先,获取你的eclipse的版本类型,点击【help】->【about eclipse IDE】
全栈程序员站长
2022/08/01
1.3K0
eclipse里没有server选项怎么办(eclipse中没有server选项)
CircleCI vs Travis CI vs Jenkins
选择CI解决方案并没有灵丹妙药。您的选择将取决于您的团队规模,编程语言以及诸如个人喜好之类的简单内容。这就是为什么根据上述标准比较每个工具的特性很重要的原因。但是,某些工具已在市场上赢得了领导者的地位。这些领导者包括CircleCI,Travis CI和Jenkins。
DevOps云学堂
2020/01/16
2.2K0
CircleCI vs Travis CI vs Jenkins
30分钟搞定 Jenkins CI
你想在本地设置中使用 Jenkins CI 进行实验吗?在本文中,我们将设置一个本地 Jenkins CI 服务,为一个简单的 Spring Boot Maven 项目创建一个构建工作,并将创建的 Docker 镜像推送到 DockerHub。这将是一个本地实验的设置,但如果你想尝试一个 Jenkins 插件,它会非常方便。
LinuxSuRen
2019/06/17
9380
使用Jenkins搭建CI服务器
  Jenkins是一个开源的跨平台的CI工具,它可以部署在Windows、Linux等平台上,并且Jenkins提供了非常丰富的插件来帮助完成编译、测试、部署等工作。   本文将介绍在Windows平台上使用Jenkins完成.Net Core应用的持续集成环境搭建,其主要内容有:
星哥玩云
2022/07/24
9000
使用Jenkins搭建CI服务器
eclipse首选项里面没有Server(eclipse的server视图)
①在软件eclipse下的Help->InstallNew Software->中,在Work with中点击Add,如下,加入Name——”Kepler” repository;Location——http://download.eclipse.org/releases/kepler
全栈程序员站长
2022/08/01
1.4K0
eclipse首选项里面没有Server(eclipse的server视图)
TeamCity VS Jenkins:选择正确的CI / CD工具
每个软件开发周期都涉及三个主要阶段:构建,测试和部署。这三个阶段中的任何一个滞后都会导致产品发布的延迟。为了避免此类延迟,组织依靠CI / CD工具来自动化这些过程。但是最近,随着对CI / CD工具的快速需求,选择泛滥,选择正确的工具可能是艰巨的任务!
用户7466307
2020/07/20
7.3K0
eclipse没有server选项怎么解决
eclipse是一个开放源代码的、基于java的可扩展开发平台。它使用频率十分高,然而当使用它部署项目时候,经常会发现一个重要的问题就是打开eclipse之后没有了server选项,那么该怎么解决这个问题呢?
全栈程序员站长
2022/07/23
2.6K0
eclipse没有server选项怎么解决
eclipse设置中没有server选项[通俗易懂]
用eclipse准备配置tomcat,发现配置中没有server选项,参考各种解决方法之后成功解决。
全栈程序员站长
2022/08/01
6.5K1
eclipse设置中没有server选项[通俗易懂]
CI与CD之Docker上安装Jenkins
CI:持续集成(Continuous integration,简称 CI),在传统的软件开发环境中,有集成,但是没有持续集成这种说法,长时间的分支与主干脱离,导致分支与主干可能存在较大偏差,在集成代码的时候可能需要花费数小时更久的时间来修复代码,以便最终将代码集成主干(俗称"集成地狱"或"集成灾难");而CI旨在鼓励团队成员进行频繁集成(例如每小时或至少每天一次)来避免这种情况的出现,通过自动检测、拉取、构建和(在大多数情况下)进行单元测试的过程,来保障代码的质量可以进行下一步的使用,这也是持续集成的目的,CI是属于开发人员的自动化流程。
Peyshine
2020/05/19
8460
CI与CD之Docker上安装Jenkins
iOS持续集成(CI)——Jenkins插件配置
xcode 编译工具:到 2017年5月25日的版本是2.0.0 ;算是比较大的版本更新 主要之前的1.4.11对xcode8版本支持的不太好 例如 XCode 8.3,中对xcrun PackageApplication.已经废弃了。也一度导致jenkins服务器的xcode 版本无法升级到最新版本。
羊羽shine
2019/05/29
1.1K0
通过 CLI 管理 Jenkins Server
Jenkins 内置的命令行接口允许管理员通过命令行工具访问并管理 Jenkins。这让我们可以通过脚本自动化的创建配置或执行任务,也就是把 Jenkins 中的配置代码化了。Jenkins 同时支持通过 SSH 和客户端命令行工具 jenkins-cli.jar 进行访问。本文主要介绍如何通过这两种方式用命令行操作 Jenkins。说明:本文的演示环境为 Ubuntu 16.04。
星哥玩云
2022/07/24
6760
通过 CLI 管理 Jenkins Server
通过 Ansible 创建 Jenkins Server
创建 CI 流程的第一件事应该是安装 CI 工具,本文以最常见的 Jenkins 为例,介绍如何使用 Ansible 自动安装 Jenkins Server。说明:本文的演示环境为 Ubuntu 16.04。
星哥玩云
2022/07/24
5540
通过 Ansible 创建 Jenkins Server
Jenkins CI 自动构建与 C-STAT 代码
我们大多数人都知道,为嵌入式软件设置 CI/CD 总是有局限性或挑战性的,并且我们还看到在某些情况下仍然没有其他可用的选择,这会导致工作量加大和代码质量缺失。
LinuxSuRen
2019/11/26
1.2K0
Jenkins CI 自动构建与 C-STAT 代码
利用Gitlab和Jenkins做CI(持续集成)
最近用到持续集成顺便总结在这里,都是用的最新版。搭建过程中还有一个demo,提交代码到 gitlab 自动触发 jenkins 任务,自动编译代码和 docker 镜像并上传。
imroc
2018/09/03
7.5K0
利用Gitlab和Jenkins做CI(持续集成)
3天学会Jenkins_8_Jenkins vs Travis-CI, 有何区别
转载注明出处,欢迎关注微信小程序小白AI博客 微信公众号小白AI或者网站 https://xiaobaiai.net或者我的CSDN https://blog.csdn.net/freeape
别打名名
2019/12/23
1.3K0
3天学会Jenkins_8_Jenkins vs Travis-CI, 有何区别
[原创]CI持续集成系统环境---部署Jenkins完整记录
Jenkins通过脚本任务触发,实现代码的自动化分发,是CI持续化集成环境中不可缺少的一个环节。 下面对Jenkins环境的部署做一记录。 -------------------------------------------------------------------------------------- 1)安装java(yum安装java1.7) java环境安装参考:Centos中yum方式安装java [root@115 ~]# java -version java version "1.7
洗尽了浮华
2018/01/23
9950
[原创]CI持续集成系统环境---部署Jenkins完整记录
Jenkins使用总结,2.0 新时代:从 CI 到 CD
Jenkins近阶段使用的总结篇,只写了个引子,却一直未动手写完,今天补上。
MavenTalker
2023/03/10
2930
Jenkins使用总结,2.0 新时代:从 CI 到 CD

相似问题

詹金斯失败了.!

12

詹金斯发邮件失败了

10

黄瓜试验通过了,但詹金斯失败了

11

詹金斯:詹金斯不运行TestNG测试

11

詹金斯共同失败

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文