Projekt Zeitansage

Projektinformationen
Aufwand (Ph) 12
Teamgröße 1-2
Schwierigkeitsgrad mittel-schwer
Ansprechpartner Herr Bakera
Projekttag


Uhr.gif

Inhaltsverzeichnis

Kurzbeschreibung

Programmiere einen Server, der die aktuelle Uhrzeit an die Clients sendet. Programmiere einen Client, der die gesendete Uhrzeit empfangen und anzeigen kann.

Aufgabenbeschreibung

Client-server.png

Bei diesem Projekt wird eine Anwendung aus zwei Komponenten aufgebaut werden: einem Client und einem Server.

Der Server ist eine Konsolenanwendung, die auf dem Port 4711 horcht.

Der Client ist eine Windows-Forms-Anwendung. Sie besteht aus einem Textfeld und einem Button. Beim Klick auf den Button verbindet sich der Client auf den Port 4711 des Servers. Sobald eine Verbindung zwischen Client und Server hergestellt wurde, sendet der Server die aktuelle Uhrzeit und das aktuelle Datum als Text an den Client. Der Client zeigt die empfangene Uhrzeit und das Datum in einem Textfeld an.

Meilensteine

  1. Erstelle für den Server und den Client jeweils ein Projekt.
  2. Programmiere zuerst den Server. Er startet einen TCPListener auf dem lokalen Rechner auf der IP 127.0.0.1 auf Port 4711 und wartet auf eine Verbindung.
  3. (optional) Beim Start des Servers können der Port und die IP-Adresse als Kommandozeilenargument konfiguriert werden.
  4. Sobald eine Verbindung hergestellt wurde, fragt der Server die aktuelle Systemzeit über die Klasse DateTime ab.
  5. Der Server wandelt Datum und Uhrzeit für den Versand über das Netzwerk in ein Byte-Array um.
  6. Das Byte-Array wird über einen Stream gesendet.
  7. Programmiere nun den Client. Erstelle die GUI entsprechend den Anforderungen.
  8. Der Client baut eine Verbindung zum Server auf.
  9. Aus dem Stream der Verbindung liest der Client die gesendete Nachricht aus.
  10. Die empfangene Nachricht wird in der GUI ausgegeben.
  11. Teste das Programm. Führen Netzwerkprobleme zum Absturz des Programms? Funktioniert die Kommunikation auch zwischen unterschiedlichen Rechnern? Können mehrere Clients gleichzeitig auf den Server zugreifen? Wie viele sind es maximal? Halte die Ergebnisse in einer Dokumentation fest und korrigiere Fehler, die du hierbei noch entdeckst.
  12. Erstelle eine Dokumentation, die allgemein erklärt, wie man eine Client-Server-Anwendung unter C# programmiert.

Ressourcen

  • Die MSDN-Dokumentation der Klassen IPAdress, TCPClient, TCPListener und NetworkStream in den Namensräumen System.Net und System.Net.Sockets.
  • Die Klasse DateTime

Projektgruppen

Bitte tragt euch für ein Projekt im Artikel Projekte von Herrn Bakera ein.