2011-07-07 45 views

回答

18

UdpClient是使用UDProtocol的套接字的包裝。它與TCPClient相似,只是提供了另一個抽象層來使網絡編程變得更容易。

更新:

而且,我從來沒有真正理解爲什麼有些人喜歡UDPClient和的TcpClient在使用底部插槽類。它可以給你一個在.NET中學習網絡編程的充足的開始,但沒有太多的痛苦,但是我覺得你擁有的抽象層越多,你就越會理解發生了什麼。我認爲,從長遠來看,在代碼中調試複雜或奇怪的行爲問題會更困難,因爲很多事情都是隱藏在自己身上的,因爲您的抽象層有幾層。即使是.NET Socket類也是一個抽象層,因爲它是一個本地(Berkeley套接字接口)套接字的包裝器,我從來沒有真正感覺到,例如,本地C++中的網絡編程也很難。儘管如果你遵循標準,準則和編寫高質量的代碼,你可能根本沒有任何問題(減去環境和環境問題),但我總是建議學習基類Socket類,以便更好地理解。 NET網絡。我想這一切都取決於你對學習框架和成爲這個主題的專家有多深。

總之,根據您的要求和必要性,任何一種方式通常都可以,但我總是建議您在任何一天都學習抽象。

2

UdpClient只是一個便利的類,它可以更容易地使用套接字。

6

根據丹德森的回答,這聽起來像是a little like the Facade pattern

立面可以:使軟件庫更易於使用,理解和測試,因爲立面具有用於常見任務的方便方法;