c# - UdpClient 与 TcpClient

标签 c# .net

UdpClient 和 TcpClient 有什么区别?从软件架构的角度来看,什么时候应该使用 Tcp 什么时候使用 Udp?我希望我解释正确..

最佳答案

TCP 与 UDP 比较 - 使用

  • TCP 用于非时间关键型应用程序。
  • UDP 用于需要快速传输数据的游戏或应用程序。 UDP 的无状态特性对于响应来自大量客户端的小查询的服务器也很有用。

TCP 与 UDP 比较 - 功能

  • 当一条消息通过互联网从一台计算机传送到另一台计算机时。这是基于连接的。
  • UDP 也是一种用于消息传输或传输的协议(protocol)。这不是基于连接的,这意味着一个程序可以向另一个程序发送大量数据包,这将结束关系。

TCP 与 UDP 比较 - 首字母缩略词

  • 传输控制协议(protocol)
  • 用户数据报协议(protocol)或通用数据报协议(protocol)

TCP 与 UDP 比较 - 权重

  • TCP 需要三个数据包来建立套接字连接,然后才能发送任何用户数据。 TCP 处理可靠性和拥塞控制。
  • UDP 是轻量级的。没有消息排序,没有跟踪连接等。它是在 IP 之上设计的一个小型传输层。

TCP 与 UDP 比较 - 数据流

  • 数据以字节流形式读取,没有区别指示被传输到信号消息(段)边界。
  • 数据包是单独发送的,只有在它们到达时才会检查完整性。数据包具有明确的边界,在接收时会遵守这些边界,这意味着在接收方套接字上的读取操作将产生完整的消息,就像它最初发送的那样。

TCP 与 UDP 比较 - 传输速度

  • 与 UDP 相比,TCP 的速度较慢。
  • UDP 更快,因为没有对数据包进行错误检查。

TCP 与 UDP 比较 - 示例

  • HTTP、HTTPs、FTP、SMTP Telnet 等...
  • DNS、DHCP、TFTP、SNMP、RIP、VOIP 等...

TCP 与 UDP 比较 - 数据可靠性

  • 绝对保证传输的数据保持完整,并按照发送时的相同顺序到达。
  • 不保证发送的消息或数据包一定会到达。

TCP 与 UDP 比较 - 连接可靠

  • 双向连接可靠
  • 单向连接可靠

TCP 与 UDP 比较 - 排序

  • TCP 按照指定的顺序重新排列数据包。
  • UDP 不对数据包进行排序。如果需要排序,则必须由应用层管理。

TCP 与 UDP 比较 - 错误检查

  • TCP 进行错误检查
  • UDP 没有错误检查选项。

TCP 与 UDP 比较 - header 大小

  • TCP header 大小为 20 字节
  • UDP header 大小为 8 个字节。

Short compare. Must have book.

关于c# - UdpClient 与 TcpClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5594180/

相关文章:

c# - WinForm DataBinding 业务对象 C# .NET 中的隐藏属性

c# - “方法”的使用类似于 'type' 错误 C#

.net - PostgresException : 28000: no pg_hba. 主机 <IP 地址> 的 conf 条目,用户 "<username>",数据库 "<database>",SSL 打开

c# - 进程无法访问该文件,因为该文件正在被另一个进程使用,但不是一直在使用

c# - 具有附加日期信息的二维数组的高效存储和检索

c# - 将 LINQ 转换为 XML

c# - DbDataRecord - entry.CurrentValues 和 entry.originalValues 相同

c# - 如何将 WinForms TextBox 的前几个字符设置为只读?

c# - 连接泄漏可能会导致超时过期。从池中获取连接之前超时时间已过?

C# 外部库使用静态成员防止多线程