【发布时间】:2011-04-04 15:33:18
【问题描述】:
我在这里需要一些建议。您认为 UDP 是将文件从一台电脑发送到另一台电脑或从一台设备发送到另一台设备(如 iphone、android 等)的更好选择吗?
问候
【问题讨论】:
标签: android sockets network-programming udp
我在这里需要一些建议。您认为 UDP 是将文件从一台电脑发送到另一台电脑或从一台设备发送到另一台设备(如 iphone、android 等)的更好选择吗?
问候
【问题讨论】:
标签: android sockets network-programming udp
您的问题标题为“视频流”,UDP 是一个合适的选择。 UDP 不保证数据包的传递,但这对于视频流来说并不重要。
但是,您的问题正文显示“发送文件”,这与流式传输并不完全相同。如果您尝试将整个文件从一台设备传输到另一台设备(并且整个文件成功传输很重要),那么 TCP 就是您的最佳选择。
【讨论】:
这很难解释。
在标题中,您说的是“流媒体”,但在正文中,您说的是“文件”。
最好使用 UDP 进行流传输,因为 TCP 总是按顺序传递数据:如果数据包丢失并且必须重新发送,则应用程序在 TCP 解决之前不会获得任何数据。对于实时数据,这是不可取的。
最好使用 TCP 发送文件。
【讨论】:
当您希望向多个收件人发送邮件时开始考虑 UDP,并且在问题上扔多个盒子的成本变得过高。
因此评估情况,UDP 传输的开发成本比 TCP 更高甚至显着更高,并且在某种程度上您正在重新发明 TCP。多播的好处是显而易见的,但单播有什么好处呢?在现代硬件上,你有 TCP 加速,这意味着 UDP 单播实际上是一个相当昂贵的替代方案。较低延迟的论点适用于特定应用,即游戏,更重要的是与缺乏可靠性和低数据速率上限有关。
注意:开发人员看到的 TCP 和 UDP 之间的初始性能差异是 Nagle 和 TCP slow start,即拥塞控制,这对于网络间的可扩展性至关重要。对于内部网络应用程序,两者都可以禁用。
【讨论】: