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
|
| |
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;
| |
|
|
Ihre Meinung? |
|
|
|
|
| |
| |
Shopping |
|
Versandkostenfrei bestellen in Deutschland und Österreich Info
|
|
| |
| |
|