sockets - 为远程桌面应用程序选择网络协议(protocol) TCP 还是 UDP?

标签 sockets networking

我想用 C# 创建类似 teamviewer 的应用程序。就性能而言,TCP 和 UDP 哪个协议(protocol)更好?

最佳答案

UDP 只是发送网络消息而不强制执行命令,例如它们可能会乱序进入,并且不会检查消息是否已通过。

TCP 强制执行数据包排序,并具有检查消息是否实际通过的方法。所以更可靠。

就吞吐量而言 - 例如在给定时间内传输的数据量 - 实际上它们大致相同。

UDP 的优点是延迟较低。因为它不会检查订单或确认数据包的接收 - 您的程序会在数据包到达时接收它们。无需等待确认。

当低延迟至关重要且消息较小时,您希望使用 UDP,并且您的程序可以容忍丢失数据包和乱序数据包。我只见过它在视频游戏(如射击游戏)中用于发送用户输入。

“teamviewer”对我来说意味着视频 - 大量数据 - 所以使用 TCP。

关于sockets - 为远程桌面应用程序选择网络协议(protocol) TCP 还是 UDP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16442410/

相关文章:

azure - Azure 的 IPv6 支持

java - Java 中的多线程 Web 服务器

python - 在 Python 中从套接字读取时解码内容

Android:OutputStreamWriter 刷新后未发送数据(套接字)

c - getaddrinfo addrinfo 结果在堆栈或堆中

Java 多线程服务器客户端

r - 无法远程连接到 Shiny 服务器并使 R 应用程序正常工作

linux - 在 Netfilter 的 NF_IP_POST_ROUTING 步骤之后是否可以 Hook 数据包?

java - 从单独的方法中引用套接字

c++ - 绑定(bind)失败 : Bad file descriptor