Praktikum DPKT

Ablauf des Praktikums

  1. Einführung in die Entwicklungsumgebung Embarcardero RAD-Studio-XE
  2. Programmierübungen:
  • MyStringEchoClt
  • MyStringEchoSrv
  • MyTimeCltTCP
  • MySMTPClt
  • MyIndySMTPClt

MyStringEchoClient

  • Kennen lernen der Nutzung eines Client-Sockets am Beispiel der Klasse TClientSocket aus der RAD-Studio-XE-IDE.
  • Es soll eine Client-Anwendung programmiert werde, die einen String an einen String-Echo-Server (TCP-Port 6666) sendet.
  • Der Echo-Server wendet auf den Text die Funktion UpperCase() an und sendet den String zurück.
  • In der Übung sollen, neben der geforderten Funktionalität, auch die angewendeten Methoden und die daraus resultierenden Socketereignisse angezeigt werden. Dadurch soll die Arbeitsweise eines Client-Socket sichtbar werden.

Downloaden Sie die Anleitung, den programmierten Client und den Server. Starten Sie den Server und testen Sie den Client.

Danach programmieren Sie den Client anhand der Anleitung.

MyStringEchoClt.PDF   MyStringEchoClt.EXE   MyStringEchoSrv.EXE

MyStringEchoServer

  • Kennen lernen der Anwendung eines Server-Sockets der Klasse TServerSocket aus der RAD-Studio-XE-IDE.
  • Es soll eine Server-Anwendung programmiert werden, die kommende Verbindungen an TCP-Port 6666 annimmt.
  • Der Echo-Server erwartet einen AnsiString, wendet auf diesen die Funktion UpperCase() an und sendet den String zurück.
  • In der Übung sollen, neben der geforderten Funktionalität, auch die angewendeten Methoden und die daraus resultierenden Socketereignisse angezeigt werden. Dadurch soll die Arbeitsweise eines Server-Socket sichtbar werden.

Downloaden Sie die Anleitung, den programmierten Client und den Server. Starten Sie den Server und testen Sie diesen mit dem Client. Erzeugen Sie eine 2. Client-Instanz und testen nochmal.

Danach programmieren Sie den Server anhand der Anleitung.

MyStringEchoSrv.PDF   MyStringEchoClt.EXE   MyStringEchoSrv.EXE

MyTimeClientTCP

  • Nutzung eines TCP-Client-Socket der Klasse TClientSocket der RAD-Studio-XE-IDE.
  • Es soll eine Client-Anwendung programmiert werden, die von einem Zeitserver, z.B. time-d.nist.gov die Zeit abfragt und diese in lesbarer Form darstellt.
  • Der Zeitserver arbeitet entsprechend RFC 868 „Time Protocol“. Verschaffen Sie sich zunächst anhand des RFC einen Überblick, wie dieser Server arbeitet.
  • Verschaffen Sie sich mittels der Hilfefunktion unter RAD-Studio-XE einen Überblick zu den Zeit/Datumsfunktionen asctime(), localtime()

Downloaden Sie die Anleitung und den programmierten Client. Testen Sie den Client bevor Sie diesen anhand der Anleitung selber programmieren.

MySMTPClient

  • Es soll ein SMTP-Client nach RFC 2821 in einfachster Form programmiert werden.
  • Nutzen Sie für den TCP-Socket die Klasse TClientSocket der RAD-Studio-XE-IDE.
  • Testen Sie zuerst den programmierten Beispiel-Client.
  • Anschließend frischen Sie Ihre SMTP-Protokollkenntnisse auf, indem Sie den ApplicationProtocolExplorer nutzen und den SMTP-Ablauf anhand der Folie 61 der Vorlesung Internet(3) nachvollziehen.
  • Programmieren Sie dann den SMTP-Client entsprechend der Anleitung.

Beachten Sie, dass der offene Zugang zum SMTP-Server nur von Rechnern innerhalb der Hochschule möglich ist.

MySMTPClt.PDF   MySMTPClt.EXE   MyApplicationProtocolExplorer.EXE

MyIndySMTPClient

Indy-Sockets-VCL (Visual-Component-Library) ist eine Open-Source-Bibliothek, die TCP-, UDP-, Raw-Sockets unterstützt, sowie Komponenten für viele Anwendungsprotokolle (SMTP, POP, IMAP, HTTP, ...) bereitstellt. http://www.indyproject.org/

In diesem Beispiel werden die Indy-Komponenten: TIdSMTP, TIdMessage verwendet. TIdSMTP ist ein Socket mittels dem eine Verbindung zum Mail-Server aufgebaut, die Message gesendet und die Verbindung abgebaut werden kann. TIdMessage stellt Methoden zur Adressierung der Mail und zur Inhaltsgestaltung bereit.

Laden Sie zuerst die Demoversion herunter und probieren diese aus.

Anschliessend implementieren Sie den IndySMTPClt entsprechend der Anleitung.

MyIndySMTPClt.PDF        MyIndySMTPClt.EXE