C# - UDPClient和Socket之间的关系

ype*_*per 9 c# networking design-patterns

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

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

Dav*_*son 19

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

更新:

此外,我从来没有真正理解为什么有些人更喜欢UDPClient和TCPClient而不是使用基本套接字类.它可以让你有足够的机会开始学习.NET中的网络编程而不会有太多的痛苦,但我觉得你拥有的抽象层越多,你就越不了解底层的内容.我觉得从长远来看,在代码中调试复杂或奇怪的行为问题会更加困难,因为正在发生的很多事情都是隐藏的,因为你是抽象的高层.甚至.NET Socket类也是一个抽象层,因为它是本机(Berkeley套接字接口)套接字的包装器,我从来没有真正感觉到例如本机C++中的网络编程也很困难.

但是,如果您遵循标准,指南和编写高质量代码,您可能根本没有任何问题(减去环境和环境问题),但我总是建议学习基本的Socket类,以便您更好地理解.NET网络.我想这一切都取决于你对学习框架的兴趣有多深,并成为这个主题的专家.

简而言之,根据您的要求和必要性,任何一种方式通常都可以,但我总是建议您在任何一天学习抽象.


Pet*_* K. 6

根据丹德森的反应,它听起来有点像Facade模式.

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