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/

相关文章:

python - 让 Pynng 和 socket 相互对话

java - 检查Java中自己的应用程序的Internet使用情况

java - 使用 ObjectInputStream.available() 等同于 Scanner.hasNext()

c# - 从 linux C 到 Windows C# 的套接字问题

c - 如何在 libuv 中获取已接受的 tcp 套接字的文件描述符?

c - 使用 C (Linux) 验证网络接口(interface)是否存在

networking - Docker 的 `docker0` 设备反复死机 (`inet addr` 消失)

c - WinDivert 通路示例返回 "warning: failed to reinject packet (1237)"

c - 监听()和选择()

sockets - 通过多个套接字发送流数据的协议(protocol)