• Keine Ergebnisse gefunden

Hochschule f¨ur Technik und Wirtschaft Studiengang Kommunikationsinformatik Prof. Dr.–Ing. Damian Weber

N/A
N/A
Protected

Academic year: 2022

Aktie "Hochschule f¨ur Technik und Wirtschaft Studiengang Kommunikationsinformatik Prof. Dr.–Ing. Damian Weber"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Hochschule f¨ ur Technik und Wirtschaft

Studiengang Kommunikationsinformatik Prof. Dr.–Ing. Damian Weber

Rechnernetze 5. ¨ Ubung

Aufgabe (Tic–Tac–Toe mit UDP)

Ziel der Aufgabe ist es, das Tic–Tac–Toe–Programm aus der vorigen ¨Ubung um Netzwerkkommunikation mittels UDP zu erg¨anzen. Es sollen zwei Spieler ¨uber das Netzwerk Tic–Tac–Toe spielen k¨onnen.

Sie m¨ussen hierzu einen Socket erzeugen. Ein Socket ist ein int–Wert, der f¨ur das Senden und Empfangen von Daten ¨uber das Netzwerk benutzt wird. Der Aufruf

socket(AF_INET,SOCK_DGRAM,0)

erzeugt einen solchen Socket, speichern Sie diesen in einerint–Variable. Siehe hier- zu auch die Manualpage der socket() Funktion. Die dort enthaltenen #include–

Hinweise stellen auch die im folgenden ben¨otigten Datenstrukturen bereit.

Der erzeugte Socket muß, um Senden undempfangen zu k¨onnen, an eine Netzwerk- adresse gebunden werden, diese besteht aus Adreßfamilie, IP–Adresse und einem frei w¨ahlbaren Port>1024. Hierf¨ur gibt es eine Strukturstruct sockaddr in, die folgendermaßen deklariert ist:

(siehe /usr/include/netinet/in.h) struct sockaddr_in {

sa_family_t sin_family; /* address family: AF_INET */

short int sin_port; /* port in network byte order */

Seite 1 von 2

(2)

struct in_addr sin_addr; /* internet address */

...

};

Hierbei ist in addr als

struct in_addr {

unsigned int s_addr; /* address in network byte order */

};

deklariert.

F¨ullen Sie die Struktur(en), konsultieren Sie die Manualpage von bind() und rufen Sie die bind()–Funktion auf.

Jetzt k¨onnen Sie ¨uber diesen Socket mit Hilfe der

• sendto() Funktion UDP–Pakete an einen Empf¨anger schicken

• recvfrom() Funktion UDP–Pakete am angegebenen Port empfangen.

Sie ben¨otigen bei sendto() IP–Adresse und Port des Empf¨angers. Bei recvfrom() erhalten Sie neben den empfangenen Daten auch IP–Adresse und Port des Senders.

Beachten Sie, daß IP–Adresse (32 Bit) und Port (16 Bit) beim Aufruf der genannten Funktionen in network byte order vorliegen m¨ussen.

Unterteilen Sie Ihren Testvorgang in drei Schritte:

• Testen Sie Ihr Programm zun¨achst innerhalb zweier Fenster an Ihrem Arbeits- platzrechner (IP 127.0.0.1).

• Testen Sie danach Ihr Programm auf zwei verschiedenen Rechnern des ISL–

Labors, indem Sie sich mit ssh auf einem weiteren Rechner einloggen.

• Versuchen Sie, daß auch die Kommunikation mit der Bigendian–Maschine stl-s-stud richtig funktioniert.

Seite 2 von 2

Referenzen

ÄHNLICHE DOKUMENTE

Schreiben Sie eine Funktion, die f¨ ur ein gegebenes Array z[ ] ganzer Zahlen die zweit- gr¨ oßte Zahl als R¨ uckgabewert zur¨ uckgibt. Sie d¨ urfen annehmen, daß die Zahlen

Die Funktion soll true zur¨ uckgeben, wenn ein Element gel¨ oscht werden konnte und false, falls x nicht in der Liste enthalten war.. Aufgabe 2 (Doppelt verkettete

In dieser Aufgabe untersuchen wir

Eine Hashtabelle soll m positive ganze Zahlen fassen k¨ onnen und nach der Methode Hashing mit offener Adressierung arbeiten.. Als Hashfunktion

b) Schreiben Sie eine Funktion f¨ ur das Finden eines Elements x in einem Suchbaum.. c) Schreiben Sie eine Funktion zum Bestimmen des Maximums

Hochschule f¨ ur Technik und Wirtschaft. Studiengang

Stellen Sie mittels des Programms /usr/sbin/traceroute von Ihrem Rech- ner aus fest, welchen Weg die Pakete auf dem Weg zu den Rechnern. www.whitehouse.gov

Das Programm soll unterscheiden k¨ onnen, welche Richtung der Namensaufl¨ osung ben¨ otigt wird, d.h... Bemerkungen