首页 > 解决方案 > UWP C# StreamSocket TCP 发送心跳消息到监控设备

问题描述

是否有任何常见的实践技术来发送心跳消息来监控客户端设备?

我目前正在做的是设置一个任务计时器并以一秒的间隔轮询每个客户端设备,并等待客户端设备的确认,然后再增加计数器以轮询第二个设备。

如果没有来自设备的确认,我将再次尝试最多 3 次。

这是一个好习惯吗?

请指教。

谢谢。

标签: c#uwpclient-serverwindows-10-iot-core

解决方案


TCP在运行于通过 IP 网络通信的主机上的应用程序之间提供可靠、有序且经过错误检查的八位字节流传输。不需要可靠数据流服务的应用程序可以使用用户数据报协议 ( UDP ),它提供了一种无连接数据报服务,强调减少延迟而不是可靠性。参考:“维基”。

一般来说,如果您的服务器和客户端工作在:

  • 有线网络代替无线网络
  • 他们都没有崩溃

无需实现心跳。

虽然 heartbeat/PING/keep-alive 是绝对的或唯一的检查连接的方法。但是如何实现心跳对您来说是一个好的实践或最佳实践,这取决于您的用例,例如,心跳对您有效的频率是多少?客户端失去连接的可能原因。

更多参考:

我需要心跳来保持 TCP 连接打开吗?

通过 Internet 保持 TCP/IP 连接的套接字保持活动状态 - 何时?如何?以及多少?

" TCP 死链接检测"


推荐阅读