求C#窗体定时为100ms的心跳包的代码,是TCP的

求C#窗体定时为100ms的心跳包的代码,是TCP的,第1张

auto 局部变量(自动储存) break无条件退出程序最内层循环 case switch语句中选择项 char单字节整型数据 const定义不可更改的常量值 continue中断本次循环,并转向下一次循环 default switch语句中的默认选择项 do 用于构成do.....while循环语句 double定义双精度浮点型数据 else构成if.....else选择程序结构 enum枚举 extern在其它程序模块中说明了全局变量 float定义单精度浮点型数据 for构成for循环语句 goto构成goto转移结构 if构成if....else选择结构 int基本整型数据 long长整型数据 registerCPU内部寄存的变量 return用于返回函数的返回值 short短整型数据 signed有符号数 sizoef计算表达式或数据类型的占用字节数 static定义静态变量 struct定义结构类型数据 switch构成switch选择结构 typedef重新定义数据类型 union联合类型数据 unsigned定义无符号数据 void定义无类型数据 volatile该变量在程序中执行中可被隐含地改变 while用于构成do...while或while循环结构

一字节对齐

struct heartbeat_req{

short reqNum

}

struct heartbeat_rcv{

short reqNum

}

你所有的包都有一个公用的报文头吧,报文头里面定义一个字段记录请求类型,一个字段记录数据部分长度,要空帧的心跳包就发一个没数据部分的报文头,请求类型字段填心跳包类型,数据部分长度填0就行了

首先,心跳包一般是30秒或者1分钟一次才正常,3秒一次太频繁,耗损资源,降低效率,心跳包其实就是你自己定义一条数据send给服务器,服务器recv到这条数据做下判断就行了,如果1分钟没收到这条数据,就断开此客户端的socket连接,返回socket值,根据返回的值确定此客户端掉线了.


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

原文地址: https://outofmemory.cn/yw/12006507.html

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

发表评论

登录后才能评论

评论列表(0条)

保存