socket 如果不关闭会自动关闭吗?为什么要心跳连接?

socket 如果不关闭会自动关闭吗?为什么要心跳连接?,第1张

如果不主动关闭socket的话,系统不会自动关闭的,除非当前进程挂掉了, *** 作系统把占用的socket回收了才会关闭。
为什么需要心跳连接主要是判断当前连接是否是有效的、可被使用的。在实际应用中假设一段时间没有数据传输时候理论上说应该连接是没有问题的,但是网络复杂,中途出现问题也是常见的,网线被掐断了、对方进程挂掉了、频繁丢包等,这时候TCP连接是不可使用的,但是对于应用层并不知道,如果需知道网络情况则要很复杂的超时进行了解,TCP从底层就实现了这样的功能。心跳机制是TCP在一段时间间隔后发送确定连接端是否还存在,如果存在的话就会回传一个包确定网络有效,如果心跳包有问题,则通知上层应用当前网络有问题了。


TCP keepalive 和 >

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13376508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存