C # - Beziehung zwischen UDPClient und Socket

8

in welcher Art von Beziehung sind Socket und UdpClient-Klassen in C #?

Könnte die Beziehung durch eines der Entwurfsmuster beschrieben werden?

    
yper 07.07.2011, 09:33
quelle

3 Antworten

18

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.

    
David Anderson - DCOM 07.07.2011, 09:37
quelle
6

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;

    
Peter K. 07.07.2011 09:42
quelle
2

UdpClient ist nur eine Convenience-Klasse, die es einfacher macht, mit Sockets zu arbeiten.

    
jgauffin 07.07.2011 09:37
quelle

Tags und Links