Netzwerkprogrammierung in C#

Muhammad Maisam Abbas 12 Oktober 2023
Netzwerkprogrammierung in C#

Dieses Tutorial zeigt, wie wir die vom .NET-Framework bereitgestellte System.NET-Bibliothek verwenden können, um eine Netzwerkanwendung in C# zu erstellen.

Netzwerkprogrammierung in C#

Die Bibliothek System.NET des .NET-Frameworks stellt ein einfaches Framework für die Netzwerkprogrammierung in C# zur Verfügung.

Es gibt zwei Arten von Netzwerkanwendungen; Client und Server. Die Client-Anwendungen fordern die Server-Anwendung auf, eine Aufgabe über das Netzwerk auszuführen, und die Server-Anwendung führt diese Aufgabe aus und gibt die Ergebnisse an die Client-Anwendung zurück.

Wir können diese Client-Server-Anwendung mit dem Namensraum System.NET in C# programmieren. Beginnen wir mit dem Lernen von URI unten.

Einheitlicher Ressourcenindikator

Beim Netzwerken verwendet der Client einen einheitlichen Ressourcenindikator oder URI, um den Typ der erforderlichen Ressource anzugeben. Der URI setzt sich aus verschiedenen Fragmenten zusammen:

  • Schemakennung – Gibt das Kommunikationsprotokoll für Anfrage und Antwort an.
  • server identifier - Ein DNS-Hostname oder eine TCP-Adresse identifiziert den Server eindeutig im Internet.
  • Pfadkennung – Lokalisiert die Informationen, die wir auf dem Server angefordert haben; und eine optionale Abfragezeichenfolge, die Informationen vom Client an den Server weiterleitet.

Die Klasse URI im Namensraum System.NET schafft einen einheitlichen Ressourcenbezeichner in C#. Der folgende Codeblock zeigt uns, wie man die Klasse URI in C# verwendet.

var resource = "http://webcode.me:80/";
var path = new Uri(resource);

Console.WriteLine("Port : " + path.Port);
Console.WriteLine("Hostname : " + path.Host);
Console.WriteLine("Path : " + path.LocalPath);
Console.WriteLine("Scheme : " + path.Scheme);

Ausgang:

Port: 80
Hostname: webcode.me
Path: /
Scheme: http

Der obige Code nimmt einen string, wandelt diesen string in einen URI um und gibt dann verschiedene Fragmente dieses neu erstellten URI aus. Darüber hinaus führt diese URI-Klasse automatisch einige Validierungen durch, um sicherzustellen, dass die URIs gut formatiert sind.

Diese Validierungen können manchmal nach hinten losgehen und den gesamten URI zerstören. Wir können diesen Effekt auch deaktivieren, indem wir UriCreationOptions.DangerousDisablePathAndQueryCanonicalization auf true setzen.

Es deaktiviert die Validierungen, sodass wir die Eigenschaft Uri.Fragments nicht verwenden können.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn