我想用 C# 创建类似 teamviewer 的应用程序。就性能而言,TCP 和 UDP 哪个协议(protocol)更好?
最佳答案
UDP 只是发送网络消息而不强制执行命令,例如它们可能会乱序进入,并且不会检查消息是否已通过。
TCP 强制执行数据包排序,并具有检查消息是否实际通过的方法。所以更可靠。
就吞吐量而言 - 例如在给定时间内传输的数据量 - 实际上它们大致相同。
UDP 的优点是延迟较低。因为它不会检查订单或确认数据包的接收 - 您的程序会在数据包到达时接收它们。无需等待确认。
当低延迟至关重要且消息较小时,您希望使用 UDP,并且您的程序可以容忍丢失数据包和乱序数据包。我只见过它在视频游戏(如射击游戏)中用于发送用户输入。
“teamviewer”对我来说意味着视频 - 大量数据 - 所以使用 TCP。
关于sockets - 为远程桌面应用程序选择网络协议(protocol) TCP 还是 UDP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16442410/