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 ?"
« Kommunikationsendpunkt: socket und close Client-Server Socketprogrammierung Clientaufruf: connect »

Serveraufrufe: bind, listen und accept

Der Serverprozess muss erreichbar sein. Dazu benötigt er einen so genannten well known port. Diese Portnummer ist also den Clientprozessen wohlbekannt. Um einen Socket an diese Nummer zu binden, wird der Aufruf bind() verwendet. Als Parameter verwendet er den Socket und eine Struktur sockaddr_in, die diesen Port beschreibt. Ist alles in Ordnung, liefert bind() als Rückgabewert eine 0, im Fehlerfall -1.

Der Aufruf listen() gibt an, wieviele Anfragen gepuffert werden können, während der Server nicht im accept steht. In fast allen Programmen wird 5 als Parameter verwendet, da dies das Maximum einiger BSD-Systeme ist. Auch listen() liefert als Rückgabewert eine 0, wenn alles glatt lief, ansonsten eine -1.

accept() wartet auf die Anfrage eines Clients. Der Aufruf liefert als Rückgabewert den Socket, mit dem der Server im weiteren die Daten mit dem Client austauscht. Er verwendet zum Senden also nicht den gebundenen Socket. Im Fehlerfall liefert accept() -1.

struct sockaddr_in AdrMySock, AdrPartnerSocket;
...

AdrMySock.sin_family = AF_INET;
  AdrMySock.sin_addr.s_addr = INADDR_ANY; /* akzept. jeden */
  AdrMySock.sin_port = PortNr; /* per getservbyname bestimmt */
  bind(IDMySocket, &AdrMySock, sizeof(AdrMySock));
  listen(IDMySock, 5);
  do {
    IDPartnerSocket = accept(IDMySocket, 
                             &AdrPartnerSocket, &len);

Nicht zu vergessen: IDPartnerSocket muss nach Ende der Kommunikation geschlossen werden, obwohl der Socket nicht explizit geöffnet wurde.



« Kommunikationsendpunkt: socket und close | Client-Server Socketprogrammierung | Clientaufruf: connect »
 
 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