热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

如何实时检测一个socket是否还有效的是否还可用,以便对网络连接中断等异常的处理

如题了,就是无论是TCP还是UDP,在服务器和客户端建立了socket连接后,希望能随时检测这个socket是否还是还是有效的,以便判断网络连接是否中断并做相应的处理,网上好像有一个心跳包的,不知道是
如题了,就是无论是TCP还是UDP,在服务器和客户端建立了socket连接后,希望能随时检测这个socket是否还是还是有效的,以便判断网络连接是否中断并做相应的处理,网上好像有一个心跳包的,不知道是否可行,而且好像是TCP才有心跳包,那UDP怎么办呢?请高手指点一下,万分感谢!

3 个解决方案

#1


发点数据,一问一答,就是所谓的心跳包,心跳包是用户数据,套接字不会区分对待,所以心跳包和你发送普通数据是完全一样的。

udp也可以做心跳包,你说的不能做,是什么原因,还是有人告诉你的?

#2


引用 楼主 huangyinghua 的回复:
如题了,就是无论是TCP还是UDP,在服务器和客户端建立了socket连接后,希望能随时检测这个socket是否还是还是有效的,以便判断网络连接是否中断并做相应的处理,网上好像有一个心跳包的,不知道是否可行,而且好像是TCP才有心跳包,那UDP怎么办呢?请高手指点一下,万分感谢!

socket只有在做函数调用时,才可以知道状态,例如你去读它或者写它,它才能返回它是否还活着。
tcp做心跳是为了处理例如拔网线,机器直接挂了等等类似对方无法及时给你发RST而导致你永远不知道对方掉线了这种情况。还有,心跳没什么一问一答,心跳只是告诉对方我在而已。

#3


嗯,非常感谢两位!如果没有其他补充,那就结贴了

推荐阅读
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 本文介绍了一个基本的同步Socket程序,演示了如何实现客户端与服务器之间的简单消息传递。此外,文章还概述了Socket的基本工作流程,并计划在未来探讨同步与异步Socket的区别。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文介绍了实时流协议(RTSP)的基本概念、组成部分及其与RTCP的交互过程,详细解析了客户端请求格式、服务器响应格式、常用方法分类及协议流程,并提供了SDP格式的深入解析。 ... [详细]
  • 如题:2017年10月分析:还记得在没有智能手机的年代大概就是12年前吧,手机上都会有WAP浏览器。当时没接触网络原理,也不 ... [详细]
  • DNS服务一、概述1.全称:Domainnamesystem(域名系统)2.作用:1)正向解析: ... [详细]
  • Python学习day3网络基础之网络协议篇
    一、互联网协议连接两台计算机之间的Internet实际上就是一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列网络协议。二、为什么要有互联网协议互联网协议就相当于计 ... [详细]
  • http:blog.csdn.netzeo112140articledetails7675195使用TCPdump工具,抓TCP数据包。将数据包上传到PC,通过Wireshark查 ... [详细]
  • Linux 防火墙与端口管理必备命令
    在使用 Linux 系统进行服务部署和问题排查时,防火墙和端口管理是不可或缺的操作。本文将详细介绍如何查看防火墙状态、端口占用情况,以及如何开放和关闭端口,帮助初学者更好地掌握这些技能。 ... [详细]
  • 本文将探讨UDP(User Datagram Protocol)协议的特点及其适用场景,与常见的TCP协议进行对比,帮助读者更好地理解和选择合适的传输协议。 ... [详细]
  • LoadRunner中的IP欺骗配置与实践
    为了确保服务器能够有效地区分不同的用户请求,避免多人使用同一IP地址造成的访问限制,可以通过配置IP欺骗来解决这一问题。本文将详细介绍IP欺骗的工作原理及其在LoadRunner中的具体配置步骤。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文探讨了一个Web工程项目的需求,即允许用户随时添加定时任务,并通过Quartz框架实现这些任务的自动化调度。文章将介绍如何设计任务表以存储任务信息和执行周期,以及如何通过一个定期扫描机制自动识别并加载新任务到调度系统中。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统上安装中文宋体字体的方法,包括操作系统的环境配置、字体管理工具的安装、字体文件的传输与缓存重建等步骤。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
author-avatar
风信子的春天R
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有