【问题标题】:C# - Relation between UDPClient and SocketC# - UDPClient 和 Socket 之间的关系
【发布时间】:2011-07-07 09:33:00
【问题描述】:

C#中的Socket和UdpClient类是什么关系?

这种关系可以用其中一种设计模式来描述吗?

【问题讨论】:

    标签: c# design-patterns networking


    【解决方案1】:

    UdpClient 是使用 UDProtocol 围绕套接字的包装器。它与 TCPClient 类似,只是提供了另一个抽象层,使网络编程变得更加容易。

    更新:

    另外,我从来没有真正理解为什么有些人更喜欢 UDPClient 和 TCPClient 而不是使用基本套接字类。它可以让你在 .NET 中学习网络编程没有太多痛苦,但我觉得你拥有的抽象层越多,你对底层发生的事情的理解就越少。我觉得从长远来看,这使得调试代码中复杂或奇怪的行为问题变得更加困难,因为发生的很多事情对你来说是隐藏的,因为你有好几层抽象。甚至 .NET Socket 类也是一个抽象层,因为它是对原生(Berkeley 套接字接口)套接字的包装,而且我从来没有真正觉得用原生 C++ 进行网络编程也有那么困难。

    不过,如果您遵循标准、指南并编写高质量的代码,您可能根本不会遇到任何问题(减去环境和环境问题),但我始终建议您学习基础 Socket 类,以便您更好地了解 .NET联网。我想这完全取决于你对学习框架和成为该主题的专家的兴趣有多深。

    简而言之,根据您的要求和必要性,任何一种方式通常都可以,但我始终建议您随时学习抽象。

    【讨论】:

      【解决方案2】:

      根据 danderson 的回复,听起来是a little like the Facade pattern

      外观可以:使软件库更易于使用、理解和测试,因为外观为常见任务提供了方便的方法;

      【讨论】:

        【解决方案3】:

        UdpClient 只是一个方便使用 Sockets 的类。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-12-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-03
          • 2022-01-20
          相关资源
          最近更新 更多