c# - UWP C# StreamSocket TCP 发送心跳消息到监控设备
问题描述
是否有任何常见的实践技术来发送心跳消息来监控客户端设备?
我目前正在做的是设置一个任务计时器并以一秒的间隔轮询每个客户端设备,并等待客户端设备的确认,然后再增加计数器以轮询第二个设备。
如果没有来自设备的确认,我将再次尝试最多 3 次。
这是一个好习惯吗?
请指教。
谢谢。
解决方案
TCP在运行于通过 IP 网络通信的主机上的应用程序之间提供可靠、有序且经过错误检查的八位字节流传输。不需要可靠数据流服务的应用程序可以使用用户数据报协议 ( UDP ),它提供了一种无连接数据报服务,强调减少延迟而不是可靠性。参考:“维基”。
一般来说,如果您的服务器和客户端工作在:
- 有线网络代替无线网络
- 他们都没有崩溃
无需实现心跳。
虽然 heartbeat/PING/keep-alive 是绝对的或唯一的检查连接的方法。但是如何实现心跳对您来说是一个好的实践或最佳实践,这取决于您的用例,例如,心跳对您有效的频率是多少?客户端失去连接的可能原因。
更多参考:
“通过 Internet 保持 TCP/IP 连接的套接字保持活动状态 - 何时?如何?以及多少? ”
" TCP 死链接检测"
推荐阅读
- python - 将底图导入 spyder 时出现运行时错误
- r - 从数值向量列表有效地创建树状图
- python-3.x - 通过套接字python3获取页面
- laravel-5 - 在哪里可以找到 Laravel Goutte 网络爬虫方法使用文档?
- python - df 上最快的迭代直到达到条件
- java - 在java中搜索重复的组合键
- mysql - LOAD DATA LOCAL INFILE 行以 /n 终止
- python - 将 mySQL 查询更改为 Django
- php - 如何在 laravel Builder 中绑定列?
- opencv - tf.image.resize_bilinear vs cv2.resize