UdpClient ist ein Wrapper um einen Socket mit UDProtocol. Es ist dem TCPClient ähnlich, es bietet lediglich eine weitere Abstraktionsebene, um die Netzwerkprogrammierung zu vereinfachen.
Aktualisierung:
Außerdem habe ich nie wirklich verstanden, warum manche Leute UDPClient und TCPClient gegenüber der Socket-Basisklasse bevorzugen. Es kann Ihnen einen guten Start geben, um die Netzwerkprogrammierung in .NET zu lernen, ohne zu viel Schmerzen zu haben, aber ich fühle, je mehr Abstraktionsschichten Sie haben, desto weniger werden Sie verstehen, was unter der Haube passiert. Ich denke, das macht es auf lange Sicht viel schwieriger, komplexe oder seltsame Verhaltensprobleme in Ihrem Code zu beheben, weil so vieles von dem, was vor sich geht, Ihnen verborgen bleibt, weil Sie mehrere Schichten hoch in der Abstraktion sind. Selbst die .NET-Socket-Klasse ist eine Abstraktionsebene, da sie ein Wrapper um einen nativen Sockel (Berkeley Sockets Interface) ist, und ich habe nie wirklich gedacht, dass die Netzwerkprogrammierung in nativem C ++ zum Beispiel so schwierig war.
Wenn Sie jedoch Standards und Richtlinien befolgen und qualitativ hochwertigen Code schreiben, haben Sie vielleicht überhaupt keine Probleme (ohne Umwelt- und Industriebeschwerden), aber ich empfehle immer, die Basis-Socket-Klasse zu lernen, damit Sie .NET besser verstehen Vernetzung. Ich schätze, alles hängt davon ab, wie tief Sie daran interessiert sind, den Rahmen zu erlernen und Experte auf diesem Gebiet zu werden.
Kurz gesagt, ist jeder Weg im Allgemeinen in Ordnung, basierend auf Ihren Anforderungen und Notwendigkeit, aber ich empfehle immer über Abstraktion lernen jeden Tag.
Basierend auf Dandersons Antwort klingt es ein bisschen wie das Fassadenmuster .
Eine Fassade kann: eine Softwarebibliothek einfacher zu benutzen, zu verstehen und zu testen, da die Fassade bequeme Methoden für häufige Aufgaben hat;
Tags und Links c# design-patterns networking