社区
网络编程
帖子详情
局域网SOCKET通信(TCP)需要心跳包来保持长连接么?
Hello_Wrorld_2010
2011-03-03 11:09:23
RT,谢谢。。。
...全文
2273
27
打赏
收藏
局域网SOCKET通信(TCP)需要心跳包来保持长连接么?
RT,谢谢。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Cxytz01
2012-12-03
打赏
举报
回复
引用 1 楼 arong1234 的回复:
心跳不是来保持连接的,而是来检测连接断没断的
这位哥说得没错, 可以参看这个帖子,我自己悟出来了。 http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4056621&page=1&extra=#pid23712813
smwhotjay
2011-03-30
打赏
举报
回复
看需求了
jackson35296
2011-03-30
打赏
举报
回复
我从来不用心跳包,select就够了
yangyang_1980_ren
2011-03-29
打赏
举报
回复
保持连接不用心跳包吧?心跳包主要是查看对方是否在线的
西湖秀才
2011-03-29
打赏
举报
回复
可以用长连接的udp socket来检测tcp链路连接通不通
qman007
2011-03-14
打赏
举报
回复
如果没有心跳的话,时间长了就会产生“僵尸连接”,
就是通信的双方其实连接已经断了,但由于TCP并不
定时检测连接是否中断,而通信的双方又相互没有
send操作,导致该连接在通信的双方的tcp上一直有
效,占用操作系统资源。心跳就是通过定时send少量
数据,在高速LEN里仅根据其返回值就可以判断对等方
是否有效了,是很有必要的。
我几年前也是认为在高速LEN里没必要加上心跳,但在
不少实际项目中(电力公司局域网)确实出现了很多“僵尸连接”,
加上心跳后“僵尸连接”就几乎绝迹了。
精锐掷矛手
2011-03-14
打赏
举报
回复
看功能需求
MervynChina
2011-03-14
打赏
举报
回复
心跳包是应用层的应用,自己定义简单的协议包,占用的字节很少,可以尽量使资源充分利用,不出现死连接,监视连接状态,规范点,是要有心跳包的
请叫我涛哥0-0
2011-03-13
打赏
举报
回复
感觉12楼的说的很有道理,心跳包是给予应用连接的测试,不是基于网络连接的测试,当然应用程序连接失败后我们考虑是不是网络的原因,这要我们进一步来判断。
[Quote=引用 12 楼 ok1234567 的回复:]
网关是不是会强行断开连接?
不会
发送心跳包的话,也用这个sock111(Client端主动发)
需要明确:基于应用连接的测试,不是基于机器网络连接的测试,因此需要在一个确定的套接字上进行双向的连接检测(心跳包),各自维护好状态(通常为一个整形的时间戳,任何正常的通信都会更新该时间戳),心跳包只有在时间戳检测有疑问的时候才真正发送,达到一定的值才可判定断线
[/Quote]
xiayadong
2011-03-13
打赏
举报
回复
应该需要用心跳包来保持长连接的吧!!
我记得在一定时间内没有数据交接的话,网关会将连接重置的,这个时间长短不一定,一般好像在10分钟左右。具体多久好像跟只跟网关有关系。
xdw523570601
2011-03-09
打赏
举报
回复
问的有些问题,心跳可以实现这个功能
helloworld_2012
2011-03-08
打赏
举报
回复
用抓包工具可以看到,
服务器和客户端之间长时间不发包时,
会发送
数据部分长度为0的数据包
,
不知道这个包是起什么作用的。
ok1234567
2011-03-08
打赏
举报
回复
网关是不是会强行断开连接?
不会
发送心跳包的话,也用这个sock111(Client端主动发)
需要明确:基于应用连接的测试,不是基于机器网络连接的测试,因此需要在一个确定的套接字上进行双向的连接检测(心跳包),各自维护好状态(通常为一个整形的时间戳,任何正常的通信都会更新该时间戳),心跳包只有在时间戳检测有疑问的时候才真正发送,达到一定的值才可判定断线
xtdga
2011-03-08
打赏
举报
回复
觉得没有必要,除非你需要非常及时的感知TCP连接中断!
Eleven
2011-03-04
打赏
举报
回复
[Quote=引用 5 楼 oyljerry 的回复:]
心跳主要用来检测长连接状态下,网络是否异常断开,比如客户端异常死机等..
[/Quote]
同意~心跳包属于应用层协议,需自己定义协议格式
zyrr159487
2011-03-04
打赏
举报
回复
需要的吧,要不然断掉了都不知道
zyyoung
2011-03-04
打赏
举报
回复
套接字本身是有一套心跳保活机制的,不过默认的设置并不像我们一厢情愿的那样有效。在双方TCP套接字建立连接后(即都进入ESTABLISHED状态)并且在两个小时左右上层没有任何数据传输的情况下,这套机制才会被激活。
很多人认为两个小时的时间设置得很不合理。为什么不设置成为10分钟,或者更短的时间?(可以通过SO_KEEPALIVE选项设置。)但是这样做其实并不被推荐。实际上这套机制只是操作系统底层使用的一个被动机制,原理上不应该被上层应用层使用。当系统关闭一个由KEEPALIVE机制检查出来的死连接时,是不会主动通知上层应用的,只有在调用相应的IO操作在返回值中检查出来。
因此,忘记SO_KEEPALIVE,在应用层自己写一套保活机制比较靠谱。
oyljerry
2011-03-04
打赏
举报
回复
心跳主要用来检测长连接状态下,网络是否异常断开,比如客户端异常死机等..
傻X
2011-03-04
打赏
举报
回复
我觉得是需要的,长连接肯定需要对SOCKET保暖的.要不就用短连接,资源消耗比较大.
wutaihua
2011-03-04
打赏
举报
回复
是的 心跳包一般都比较小 发送的间隔比较长。
我们公司的心跳包 一般就16个字节 可以在定义结构体的时候 定义扩展模式。方便追加内容。发送的间隔为30秒一次。
如果中间发生了通讯。比如设备端发送了指令过来 或者我们发送成功指令给设备,则延后开始重新计时30秒。
加载更多回复(4)
海思平台上USB WIFI的移植与
局域网
无线调试和视频流预览-第5/11季视频课程
本季课程在开发板上移植USB WIFI模块(套装附带的MT7601模块),工作在ap模式下,并且用电脑通过WIFI去连接开发板实现主机和开发板的无线网络
局域网
通信
,这样就可以用WIFI网络取代板载ethernet有线网络方式来进行调试和
局域网
视频预览。现在很多的视频摄像头产品都要求支持无线网络连接功能,本季课程主要是针对这方面开发技术讲解的。随着
通信
行业发展,网速越来越快,网络也从文本时代发展越过语音时代到了现在视频时代,“优酷、爱奇艺”、“微视频”、“直播”等的出现也是视频逐步成为主流媒体的证据和表现。航拍、视频监控、刷脸过关检测、汽车ADAS系统等应用也是视频在主流行业中的应用,因此视频的采集、编解码、传输、识别等技术变得越来越有价值,涌现出了“海康威视”、“大华股份”、“深圳英飞拓”等一批明星企业,名扬海内外,动辄市值几百亿。同时在芯片级,国产华为海思HI35XX系列视频编解码方案也逐步取代进口芯片(如TI、安霸)成为主流方案。视频行业技术含量高、难度大、学习周期长、发展变化快而资料少,因此行业比较缺人、工资较高。如海康威视,普通高校硕士研究生应届进入年薪普遍高于15-20万,在嵌入式linux领域也算高工资技术方向了。本项目是朱老师及其团队推出的一个嵌入式linux领域重量级企业级实战项目,选用华为海思HI3518E方案,结合OV9712/AR0130 Sensor实现图像采集和H.264编码压缩,并通过ethernet和WIFI,以
socket
实时流和RTSP等方式,实现720P/960P高清视频传输。本项目共分11季,从海思SDK开发环境搭建,到sample程序讲解、SDK中API函数解析,到H.264编解码、RTSP流媒体传输、MP4文件打包,到图像IQ调试、图像识别等视频领域高阶内容,可以说从零基础入手,对图像采集、编解码、网络传输、图像存储和识别做了全方位的详细讲解和代码分析,是目前市面上**一套系统讲解图像和视频技术的视频课程。
局域网
SOCKET
通信
(
TCP
)
需要
心跳包
来
保持
长连接
么
转载地址:http://blog.csdn.net/lsccsl/article/details/6629917 偶然看到,免得忘了,拿来主义,知道结果即可,不追究 链接如下,在第7楼 http://cache.baidu.com/c?m=9d78d513d98510ed4fece4697c66c0171b4381132ba6d3020ca58438e5732d4
java
socket
心跳包
_
socket
中的短连接与
长连接
,
心跳包
示例详解
TCP
连接简介当网络
通信
时采用
TCP
协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再
需要
这个连接时它们可以释放这个连接,连接的建立是
需要
三次握手的,而释放则
需要
4次握手,所以说每个连接的建立都是
需要
资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:一、
长连接
与短连接
长连接
: 指在一个
TCP
连接上可以连续发送多个数据包,在
TCP
连...
linux
心跳包
检测代码_
socket
中的短连接与
长连接
,
心跳包
示例详解
TCP
连接简介当网络
通信
时采用
TCP
协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再
需要
这个连接时它们可以释放这个连接,连接的建立是
需要
三次握手的,而释放则
需要
4次握手,所以说每个连接的建立都是
需要
资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:一、
长连接
与短连接
长连接
: 指在一个
TCP
连接上可以连续发送多个数据包,在
TCP
连...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章