实时数据流到多个客户端
Posted
技术标签:
【中文标题】实时数据流到多个客户端【英文标题】:Real-Time Data Streaming to Multiple Clients 【发布时间】:2010-05-17 20:04:52 【问题描述】:我想编写一个应用程序,它将通过互联网以 2400 波特的速率将数据从服务器传输到多个客户端。每个客户端的数据都是相同的,将其作为 UDP 流发送可能会很好,因为准确的数据准确性不是 100% 的必要性,因为数据格式内置了校验和,数据将在循环中重复发送。
最好的方法是什么?我想用 C 编写服务器,但我不知道如何最好地将这些数据多播到将在全国范围内接收它的不同客户端。
我确信这似乎是一种非常严格的方式来处理我的项目,而不是仅仅使用某种 fetch 命令,但如果可能的话,我更愿意这样做。
【问题讨论】:
什么操作系统? IPv4 还是 IPv6?你可能应该谷歌IP multicast
Linux/Windows,没关系,还有 IPv4。会的,谢谢。
【参考方案1】:
您可能希望为此查看单播,特别是如果您的客户位于多个目录中。您应该能够将 TCP 或 UDP 流量与您的数据一起发送到您的每个客户端,尤其是在带宽需求很小的情况下。 IP 多播最适合网络上彼此靠近的节点组。
反复循环客户端地址,并发送您的数据。调整循环的速率以限制数据速率。
注意可靠性问题:正确性不是UDP的唯一问题;您也没有确认已收到您的数据,也无法保证订购。
波特在这里并不真正适用,因为数据被分割成或多或少离散的块。
【讨论】:
对,我不需要确认,我只需要发送出去。就波特而言,我只需要稍微限制速度。这并不是说我需要数据本身以 2400 波特的速度输出,显然这是互联网,这不适用。问题是,数据最终将通过串行以 2400 波特的速率从 PC 传输到字符生成器之类的东西,所以我只需要不要太快地发送数据,以免使通过串行的消息过载.我可能会在消息之间设置 1 秒的延迟,这应该会让一切正常。 就单播而言,您是否建议我将数据唯一地发送到每个 IP?这可能就是我最终要做的事情。 是的,我只是将数据单独发送到每个 IP。如果我是你,我会使用单播,从睡眠延迟开始,然后从那里进行改进以满足你的需求。以上是关于实时数据流到多个客户端的主要内容,如果未能解决你的问题,请参考以下文章