2011-07-07 13 views

Odpowiedz

18

UdpClient jest opakowaniem wokół gniazda przy użyciu protokołu UDProtocol. Jest podobny do TCPClient, wszystko co robi, to kolejna warstwa abstrakcji, która znacznie ułatwia programowanie sieciowe.

Aktualizacja:

Ponadto, nigdy naprawdę rozumieć, dlaczego niektórzy ludzie wolą UDPClient i TcpClient nad użyciu klasy gniazda bazowej. Może dać ci duży początek nauki programowania sieci w .NET bez zbytniego bólu, ale czuję, że im więcej warstw abstrakcji, tym mniej rozumiesz, co dzieje się pod maską. Wydaje mi się, że na dłuższą metę znacznie utrudnia to debugowanie złożonych lub dziwnych problemów behawioralnych w kodzie, ponieważ wiele z tego, co się dzieje, jest ukryte przed tobą, ponieważ masz kilka warstw wysokiego poziomu abstrakcji. Nawet klasa .NET Socket jest warstwą abstrakcji, która jest opakowaniem natywnego gniazda (Berkeley Sockets Interface) i nigdy nie czułem, że programowanie sieciowe w natywnym C++ jest na przykład tak trudne.

Chociaż, jeśli przestrzegasz norm, wytycznych i piszę wysokiej jakości kod, możesz nie mieć żadnych problemów (pomijając problemy środowiskowe i okolicznościowe), ale zawsze polecam naukę podstawowej klasy Socket, abyś lepiej zrozumiał. Sieć NET. Sądzę, że wszystko zależy od tego, jak głęboko jesteś zainteresowany poznaniem struktury i staniem się ekspertem w tej dziedzinie.

Krótko mówiąc, tak czy inaczej, ogólnie rzecz biorąc, jest to w porządku w oparciu o twoje wymagania i konieczność, ale zawsze polecam naukę abstrakcji każdego dnia.

2

UdpClient to tylko klasa wygody, która ułatwia pracę z gniazdami.

6

Na podstawie odpowiedzi dandersona brzmi ona a little like the Facade pattern.

Fasada może: sprawić, że biblioteka oprogramowania będzie łatwiejsza w użyciu, zrozumieniu i przetestowaniu, ponieważ fasada ma dogodne metody wykonywania typowych zadań;

Powiązane problemy