"streaming" localy:UDP、TCP,还是其他?

"streaming" localy : UDP, TCP, something else?

我正在尝试编写调音台的代码,在编码之前我需要一些建议(希望我的问题不会是 "off topic")。

在我的项目中,在调音台的每个 "stripe" 上,我都可以输入一个来源:一个音频文件播放器、一个麦克风……我成功完成了第一部分。在名为 "Master" 的最后一个条纹中,我必须收集所有声音信号以将它们混合在一起。对于第一个测试,我将尝试添加它们(然后看看会发生什么)。

但我的问题是:将声音从条纹发送到我的主人的最佳方式是什么?滞后必须非常短:如果我在播放音乐时用麦克风唱歌,我在麦克风中收集的声音必须到达 Master "immediatly" 进行混合,而不是 15 秒后...

所以,我考虑使用简单的 UDP 传输:与 TCP 相比,它的速度更快。因为我将 "stream" 本地地址 127.0.0.1 上的每个条带(而不是整个互联网),我可以认为 "datagram losses" 是微不足道的吗?或者我应该尝试在我的 UDP 上实现类似 RTP 的东西(真的更重......)?或者我没有想到的其他事情?

我现在 post 没有写任何代码,因为我的目标是在一行又一行地写代码并注意到我的错误方式之前获得一些好的建议...

感谢您的回答。问候。

如果您将 TCP 数据包从纽约发送到东京,将花费不到 300 毫秒。如果您跨城市发送 TCP 数据包,则通过互联网的时间应该少于 25 毫秒。如果你通过 Wifi 发送一个数据包,它应该花费不到几个 milli-seconds 而通过本地 LAN 你应该不到 0.1 毫秒。

注意:如果您向月球发送数据包并返回,则需要 2.5 秒。

但是,如果您使用 UDP,它可能会更快,也可能会更慢,或者根本无法到达。 UDP 是一种有损协议,因此无法保证一定会收到数据包,也没有内置的方法来检测此类数据包是否丢失。

总之,使用TCP。 micro-second 差异不会像丢包一样重要。