C# - UDPClient和Socket之间的关系

时间:2011-07-07 09:33:00

标签: c# design-patterns networking

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

关系是否可以通过其中一种设计模式来描述?

3 个答案:

答案 0 :(得分:18)

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

更新

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

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

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

答案 1 :(得分:6)

根据丹德森的回应,听起来a little like the Facade pattern

  

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

答案 2 :(得分:2)

UdpClient只是一个便利类,可以更轻松地使用套接字。