Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Datenaustausch: send und recv Client-Server Socketprogrammierung Zahlendreher ntoh und hton »

Namensauflösung

Computer und Dienste werden unter TCP/IP eigentlich mit Nummern angesprochen. Allerdings gibt es jeweils Mechanismen zur Namensauflösung. Damit sie auch im Programm Anwendung finden, ruft man die Funktionen gethostbyname() zur Ermittlung einer IP-Adresse anhand des Hostnamen und getservbyname() zur Ermittlung der Servicenummer anhand des Servicenamens auf.

struct hostent *RechnerID;
struct servent *Service;

/* Bestimme den Rechner namens server */
  RechnerID = gethostbyname("server");
  /* Bestimme den Port für hilfe */ 
  Service = getservbyname("hilfe","tcp");  

gethostbyname() erhält als Parameter einfach die Zeichenkette mit dem Namen des gesuchten Servers und liefert die IP-Nummer als einen Zeiger auf eine Struktur vom Typ hostent. Das wichtigste Element der hostent-Struktur ist das Feld h_addr_list. Hierin befindet sich das Array der IP-Nummern des Rechners. Das Element h_addr liefert die Nummer, wie sie von connect() als IP-Nummer gebraucht wird. Dazu muss sie allerding in das Feld sin_addr der Struktur sock_addr_in kopiert werden. Das Feld h_length liefert die Größe einer IP-Nummer, die bei IPv4 immer vier ist.

struct sockaddr_in AdrSock;
struct hostent *RechnerID;

/* Bestimme den Zielrechner */
  RechnerID = gethostbyname("server");
  bcopy(RechnerID->h_addr,
        &AdrSock.sin_addr, RechnerID->h_length);

connect(IDSocket, (struct sockaddr *)&AdrSock,
          sizeof(AdrSock));

Die Funktion getservbyname() liefert für die beiden Zeichenketten, die den Dienst beschreiben, einen Zeiger auf eine Struktur namens servent. Das wichtigste Element der servent-Struktur ist das Feld s_port. Hierin befindet sich die Nummer des Ports, wie sie von der Funktion connect() verwendet wird.

struct sockaddr_in AdrSock;
struct servent *Service;

Service = getservbyname("hilfe","tcp");
  AdrSock.sin_port = Service->s_port;



« Datenaustausch: send und recv | Client-Server Socketprogrammierung | Zahlendreher ntoh und hton »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de