社区
Linux/Unix社区
帖子详情
linux下什么函数可以检测TCP的链接是否还有效?
qsyang
2004-02-16 10:44:28
我这边做server端,需要检测client是否已经关闭了连接,有什么函数吗?我找了半天都没找到。
...全文
40
1
打赏
收藏
linux下什么函数可以检测TCP的链接是否还有效?
我这边做server端,需要检测client是否已经关闭了连接,有什么函数吗?我找了半天都没找到。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Microsoft
2004-04-07
打赏
举报
回复
那什么信号能检测到客户端来连接?
YOLOv4目标
检测
:原理与源码解析
需要学习Windows系统YOLOv4的同学请前往《Windows版YOLOv4目标
检测
实战:原理与源码解析》, 课程
链接
https://edu.csdn.net/course/detail/29865 【为什么要学习这门课】
Linux
创始人Linus Torvalds有一句名言:...
Linux
系统下判断
TCP
连接状态的几种方法
当客户端与服务端保持长连接时,客户端除了可以使用心跳包来确认连接状态外,还可以使用一下几种方法: 使用recv()
函数
判断 使用recv()
函数
的MSG_PEEK选项,使用这个选项可以“偷看(peek)”一下接收队列的数据。所谓“偷看”,就是recv()不从接收队列中把数据移除,因此下一次调用此
函数
还会接收到此数据。 当
TCP
连接处于已建立Established状态时,如果接收队列中有数据,recv()
函数
返回1;如果接收队列中没有数据但是
TCP
连接没有断开,recv()
函数
返回-1,并且把errno
Linux
网络编程(四)-协议03-
TCP
协议03:心跳
检测
机制【
TCP
异常断开
检测
机制;若对方异常断开,本机
检测
不到,一直等待,浪费资源】【心跳包:setsockopt
函数
每隔一定时间发送探测分节】
在
TCP
网络通信中,经常会出现客户端和服务器之间的非正常断开,需要实时
检测
查询
链接
状态。常用的解决方法就是在程序中加入心跳机制。Heart-Beat线程这个是最常用的简单方法。在接收和发送数据时个人设计一个守护进程(线程),定时发送Heart-Beat包,客户端/服务器收到该小包后,立刻返回相应的包即可
检测
对方
是否
实时在线。该方法的好处是通用,但缺点就是会改变现有的通讯协议!大家一般都是使用业务层心跳来处理,主要是灵活可控。
Linux
下
TCP
通信时如果一方拔掉网线会怎么样?
本文95%参考下面的
链接
: 拔掉网线后, 原本的
TCP
连接还存在吗?
TCP
协议-长连接和短连接 如果没有数据传输,不能被
TCP
感知到,
TCP
连接状态依旧保持; 如果有数据传输,重传次数超过一定值(
Linux
下默认15)或超过一定的超时时间则关掉本端的
TCP
连接,对端的
TCP
连接依旧保持; 如果设置了socket的SO_KEEPALIVE选项,则如果没有数据发送时,会发送探测包,如果网不通,则收不到对探测包的应答,则关闭本端,对端仍旧保持连接;如果本段阻塞等待键盘输入,则依旧发动探测包,而且即使联网着,
TCP
连接断线后,如何
检测
?
运行环境:
linux
语言:c++
TCP
连接断线后, 1.正常断线,如何
检测
? 2.意外掉线,如何
检测
? 我不希望通过发送数据来
检测
TCP
连接! 谢谢! --------------------------------------------------------------- 通常情况下都是采用heartbeat来持续
检测
连接的,如果不希望采用这种方式的话,也即在
Linux/Unix社区
23,110
社区成员
74,506
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章