完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
tcp不管是连接还是断线都需要有握手机制,连接的时候是三次握手,正常掉线的时候是四次握手,在正常情况下,关闭握手都是有关闭的一方发起的,比如我的客户端要关闭,那么客户端会发送一个请求告诉服务器"我要关闭了"(第一个握手),然后服务器收到这个请求后回应一个响应给客户端"我受到了你的关闭请求"(第二次握手),然后然后再给客户端一个请求"既然你要关闭,那我也关闭吧"(第三次握手),客户端受到了服务器发送过来的关闭请求后,返回一个响应给服务器"我收到了你的关闭请求"(第四次握手),然后客户端关闭自己这一段的连接,服务器这一侧受到了客户端的关闭响应后也关闭自己这一侧的连接,至此服务器和客户端完全断开。而异常断线(拔网线或者突然断电)时以上的过程是没有时间和条件完成的所以此时的tcp连接只是单方面的断开,即所谓的假链接,单纯的tcp协议是无法完全解决这种事情的,所以我们通常使用心跳包来消除假链接或者说异常断线的情况。
|
|
|
|
|
|
|
|
心跳包是双方预先约定好的一个数据,比如服务器为了监测客户端是否在线,会定期的发送一个数据包,比如约定好5min钟发送一个0xFF代表心跳数据,同时规定客户端收到了心跳包后必须回应一个心跳回应,比如为0xFE,这些东西都是事先服务器和客户端约定好的。那么如果在通讯正常的情况下,服务器每5min发送一次0xFF后,必然会收到一次客户端发送的0xFE的响应。当某一时刻,服务器发送了0xFF后发现在超时时间内无法收到0xFE的响应,那说明什么?说明要么客户端收不到0xFF的心跳,要么客户端发送的0xFE服务器无法收到,这两种情况均是异常情况,所以此时服务器就可以判断客户端掉线了。这就是心跳机制。
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2568 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2360 浏览 5 评论
3207 浏览 3 评论
2836 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2787 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
662浏览 1评论
898浏览 0评论
1020浏览 0评论
665浏览 0评论
494浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 01:03 , Processed in 1.136776 second(s), Total 81, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号