Netzwerkprogrammierung unter Linux und UNIX

Ähnliche Dokumente
Die Unternehmergesellschaft

Filme der Kindheit Kindheit im Film

Figur und Handlung im Märchen

Verteilte Systeme - 1. Übung

Client/Server-Systeme

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:

ISO 9001: vom Praktiker für Praktiker. Bearbeitet von Norbert Waldy

Programmieren von UNIX-Netzen

Klinische Psychologie: Körperliche Erkrankungen kompakt

Zeitung als Zeichen. Identität und Mediennutzung nationaler Minderheiten in Deutschland. Bearbeitet von Swea Starke

Bewertung von Innovationen im Mittelstand

Schulungspaket ISO 9001

Die Erwartungen der Eltern an die weiterführende Schule beim Schulübertritt ihres Kindes von der Grundschule in die Sekundarstufe I

50 Strategien, die falschen Mitarbeiter zu finden... und wie Sie es besser machen können

Die Roten Hefte / Ausbildung kompakt Bd 204. Tragbare Leitern. Bearbeitet von Thomas Zawadke

Verlässlicher Grammatik-Transfer

Die gemeinsame Trägerschaft von Einrichtungen durch mehrere Bundesländer

Basiswissen Softwaretest

Webseiten entwickeln mit ASP.NET

Lese-Rechtschreib-Störung

Vorbereitung auf das Martyrium bei Cyprian von Karthago

Konzentration aufs Wesentliche!

Mathe: sehr gut, 6. Klasse - Buch mit Download für phase-6

MicroRNA Interference Technologies

Apps für ios entwickeln

Stochastik für Informatiker

Kognitive Verhaltenstherapie

Preis und Markendehnung

Inhaltsverzeichnis. Rainer Oechsle. Parallele und verteilte Anwendungen in Java ISBN: Weitere Informationen oder Bestellungen unter

Strategie: Stimmungsmache

Die Auswirkungen der englischsprachigen Hochschullehre in Deutschland auf das Deutschlernen in China

So führe ich mein Team

Das Zebra-Buch zur Geometrie

Controlling-Instrumente von A - Z

Grundkurs Programmieren in Java

Soziale Phobie bei Jugendlichen

Einfach SketchUp - Eine Gebrauchsanweisung

Indirekte Sterbehilfe

Wie Kinder ein Bilderbuch verstehen

Max Weber-Handbuch. Leben Werk Wirkung. Bearbeitet von Hans-Peter Müller, Steffen Sigmund

Kommentar zum Mutterschutzgesetz: MuSchG

Parallele und verteilte Anwendungen in Java

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Zwischen Krieg und Hoffnung

So geht Verkaufen. Mit 99 nls-lektionen zum Eliteverkäufer. Bearbeitet von Marc M. Galal

Narrative Kompetenz in der Fremdsprache Englisch

Werte und Bürgerschaftliches Engagement Perspektiven für Familie und Religion

Remote Method Invocation

Das Archetypenkonzept C. G. Jungs

Lesedetektive - Eine Pizza für Sophie, 1. Klasse

Psychotherapie in Psychiatrie und Psychosomatik. Narzissmus. Theorie, Diagnostik, Therapie

schnell und portofrei erhältlich bei

mitp Professional Raspberry Pi Einstieg und User Guide Bearbeitet von Eben Upton, Gareth Halfacree

Abstandsflächenrecht in Bayern

Die neue Honorarordnung für Architekten- und Ingenieurleistungen

Depression. Helfen und sich nicht verlieren

Berechnungen in OpenOffice.org / StarCalc

Zwischen fristgerechter und verspäteter Einschulung

Prüfungsklausuren mit Lösungen Band 2014

Microcomputertechnik

Thermodynamik des Kraftfahrzeugs

Polarlichter zwischen Wunder und Wirklichkeit

Kinderstärkende Pädagogik und Didaktik in der KiTa

Internationales Scheidungsrecht

Sprachförderung bei Kindern mit Down-Syndrom

Multiuser Client/Server Systeme

Qualitätsmanagement - Lehrbuch für Studium und Praxis

Anwendungen der Linearen Algebra

Wie fange ich meine Rede an?

Geschichte der Psychologie

Sterben ohne Angst. Was Palliativmedizin leisten kann. Bearbeitet von Claudia Bausewein

Koordinatenmesstechnik und CAX-Anwendungen in der Produktion

Karteikarten Verwaltungsrecht AT 2

Wie mehrsprachige Kinder in der Deutschschweiz mit Schweizerdeutsch und Hochdeutsch umgehen

Studien zur Pahlavi-Übersetzung des Avesta

Bürgerliches Gesetzbuch: BGB

Borderline-Therapie. Psychodynamik, Behandlungstechnik und therapeutische Settings. Bearbeitet von Dr. Mathias Lohmer, Otto F.

Mitarbeiterbindung im Einflussfeld gesellschaftlicher Modernisierung in Mittel- und Osteuropa

Mobile und Verteilte Datenbanken

Transnationale Perspektiven im 19. Jahrhundert

Psychosoziale Beratung im Kontext von Pränataldiagnostik

Krafttraining bei Kindern und Jugendlichen

Politische Triebkräfte der Innovation

Entwicklungspsychologie im Kindes- und Jugendalter

Handels- und Gesellschaftsrecht Fälle und Schemata für Dummies

Kölner Schriften zu Recht und Staat 54. Kinderrechte. Das Übereinkommen über die Rechte des Kindes im internationalen und nationalen Kontext

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

Change Management in der Praxis

Polizeigesetz für Baden-Württemberg

Der Impfkurs. Eine Anleitung zum richtigen Impfen. Bearbeitet von Prof. Dr. Wolfgang Jilg

Cyberstalking und Cybercrime

Einführung in die Kunstpädagogik

SCL und OOP mit dem TIA Portal V11

Sprachenlernen leichtgemacht!

Produktmanagement in Versicherungsunternehmen

Die Unternehmensumwandlung

X.media.press. Digitale Panoramen. Tipps, Tricks und Techniken für die Panoramafotografie. Bearbeitet von Corinna Jacobs

Beethoven. Seine Musik Sein Leben. Bearbeitet von Lockwood, Lewis Lockwood, Lewis, Hiemke, Sven Hiemke, Sven

Transkript:

Netzwerkprogrammierung unter Linux und UNIX Bearbeitet von Stefan Fischer, Walter Müller 2. Auflage 1999. Buch. XII, 228 S. Hardcover ISBN 978 3 446 21093 6 Format (B x L): 14 x 20,9 cm Gewicht: 329 g Zu Leseprobe schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, ebooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte.

CARL HANSER VERLAG Stefan Fischer, Walter Müller Netzwerkprogrammierung unter Linux und UNIX 3-446-21093-8 www.hanser.de

INHALTSVERZEICHNIS 1. EINFÜHRUNG UND ÜBERSICHT....1 2. COMPUTER-NETZWERKE...5 2.1 Aufbau von Rechnernetzen................................. 5 2.2 UNIX-basierte Netze...................................... 9 Das Internet............................................. 9 UNIX und das Internet................................... 11 3. PROGRAMMIEREN IN EINER UNIX-UMGEBUNG...13 3.1 C-Compiler............................................. 13 3.2 make.................................................. 16 3.3 System V vs. BSD-UNIX.................................. 24 4. REMOTE PROCEDURE CALL (RPC)........................... 25 4.1 Modell des entfernten Prozeduraufrufs...................... 26 4.2 Datendarstellung mit XDR................................ 28 4.3 Das Werkzeug rpcgen.................................... 33 Aufruf................................................. 34 4.4 Beispielanwendung: Schiffe-Versenken.................... 35 Das Spiel.............................................. 35 1. Schritt: Identifizieren der entfernten Prozeduren............ 36 2. Schritt: Erstellen der XDR-Datei......................... 38 3. Schritt: Erzeugung der C-Dateien mit Hilfe von rpcgen....... 40 4. Schritt: Ausfüllen der Serverroutinen..................... 46 5. Schritt: Schreiben der Client-Anwendung.................. 48 6. Schritt: Compilieren und Linken......................... 50 7. Schritt: Starten des Servers............................. 52 8. Schritt: Starten des Clients............................. 53 4.5 Zusammenfassung....................................... 54 vii

INHALT 5. TCP SOCKETS...55 5.1 Kommunikationsmodell.................................. 55 5.2 Zugriff auf die Socketschnittstelle.......................... 57 Erzeugen eines Sockets................................... 57 Verbindungsaufbauwunsch................................ 57 Warten auf einen Verbindungsaufbauwunsch................. 58 Senden von Daten....................................... 59 Empfangen von Daten.................................... 59 Schließen der Verbindung................................. 60 5.3 Aufbau eines Client-Programms............................ 60 Feststellen des Servers................................... 61 Feststellen der Portnummer............................... 61 Verbindungsaufbau auf der Basis der Serveradresse........... 61 5.4 Aufbau eines Server-Programms........................... 63 5.5 Besonderheiten der Datenübertragung...................... 65 Kodierung und Übertragung komplexer Datenstrukturen....... 65 Empfang und Dekodierung komplexer Datenstrukturen........ 69 Lokales und Netzformat.................................. 71 5.6 Beispiel: Schiffe-Versenken.............................. 72 Das Client-Programm.................................... 73 Das Server-Programm.................................... 78 Programmübersetzung und -start.......................... 80 6. UDP SOCKETS...83 6.1 TCP und UDP.......................................... 83 6.2 Struktur von UDP-basierter Software....................... 84 6.3 Videoübertragung mit UDP............................... 87 Der Video-Client........................................ 89 Der Video-Server........................................ 93 7. STREAMS UND TRANSPORT LAYER INTERFACE....97 7.1 Zugriff auf die TLI-Schnittstelle............................ 97 Öffnen eines Transport-Endpunkts......................... 97 Aktivieren eines Transport-Endpunkts...................... 98 Speicherplatz für TLI-Strukturen.......................... 99 Verbindungsaufbau..................................... 100 Warten auf einen Verbindungsaufbauwunsch................ 101 Behandlung eines Verbindungsaufbauwunsches............. 101 Datenübertragung...................................... 102 Schließen der Verbindung................................ 102 viii

INHALT Fehlerbehandlung...................................... 103 7.2 Aufbau eines Client-Programms........................... 103 Feststellen des Servers.................................. 104 Festlegen des Dienstes.................................. 104 Verbindungsaufbau..................................... 105 7.3 Aufbau eines Server-Programms.......................... 106 7.4 Beispiel Schiffe-versenken.............................. 109 Gemeinsame Vereinbarungen für beide Programme.......... 109 Das Client-Programm................................... 110 Das Server-Programm................................... 112 7.5 Verbindungslose Datenübertragung....................... 115 Aufbau eines verbindungslosen Client-Programms........... 116 Aufbau eines verbindungslosen Server-Programms........... 117 8. PROGRAMMIERUNG MIT JAVA...121 8.1 Was ist das World Wide Web?............................ 121 8.2 Programmierung des WWW.............................. 124 8.3 Die Java-Programmierumgebung.......................... 125 Installation einer Java-Umgebung......................... 125 Doch ein Java-Compiler?................................. 126 Applet oder Application?................................. 126 8.4 Objektorientierte Programmierung........................ 127 Objekte, Klassen und Methoden........................... 127 Information Hiding..................................... 128 Vererbung, Basisklassen und Überschreiben von Methoden.... 129 8.5 Die ersten Applets...................................... 129 8.6 Grafische Benutzeroberflächen............................ 135 Buttons............................................... 136 Textfelder............................................. 137 Auswahl und Listen..................................... 138 Java Swing............................................ 140 8.7 Threads.............................................. 141 8.8 Netzwerkprogrammierung............................... 143 9. CORBA............................................... 151 9.1 Einführung in CORBA.................................. 152 Idee.................................................. 152 Object Request Broker................................... 153 Interface Definition Language (IDL)....................... 154 Stubs und Skeletons.................................... 156 Name Service.......................................... 157 ix

INHALT 9.2 Wie schreibt man eine CORBA-Anwendung?................ 158 9.3 Ablauf einer CORBA-Anwendung......................... 161 9.4 Schiffe-Versenken in CORBA............................. 163 Schritt 1: Anforderungsanalyse........................... 163 Schritt 2: Systemdesign.................................. 164 Schritt 3: IDL-Entwicklung.............................. 165 Schritt 4: Codegenerierung............................... 167 Schritt 5: Objektmethodenentwicklung..................... 169 Schritt 6: Anwendungslogikentwicklung.................... 172 Schritt 7: Übersetzen der Quelltexte....................... 175 Schritt 8: Start der Anwendung........................... 175 10. KOMPLEXE KOMMUNIKATIONSSOFTWARE...177 10.1 Mehrstufige RPCs...................................... 177 Warum mehrstufige RPCs?............................... 177 Erzeugung der Software................................. 179 Beispiel: ein verteilter Rechenserver....................... 179 10.2 Behandlung mehrerer Clients............................ 184 Umgehen der Blockierung mit select()...................... 184 Server mit mehreren Prozessen........................... 188 10.3 Weiterführende Möglichkeiten von CORBA................. 191 Mehrstufige Objektaufrufe.............................. 191 Callbacks............................................. 193 Client-Struktur........................................ 194 Server-Struktur........................................ 195 10.4 Zusammenfassung...................................... 196 11. VERGLEICH DER PROGRAMMIERMETHODEN...197 11.1 Art der Anwendung..................................... 197 11.2 Erfahrung des Programmierers........................... 200 11.3 Eigenschaften des vorhandenen Rechners................... 201 A. ABHOLEN DER BEISPIELE PER FTP...203 B. SYSTEMAUFRUFE UND BIBLIOTHEKSROUTINEN...205 ACCEPT.............................................. 205 BIND................................................ 205 CLOSE............................................... 206 x

CONNECT............................................ 206 FORK................................................ 206 GETHOSTBYNAME.................................... 207 GETSERVBYNAME.................................... 207 LISTEN.............................................. 208 READ................................................ 208 RECVFROM........................................... 208 SELECT.............................................. 209 SENDTO............................................. 209 SOCKET.............................................. 209 WRITE............................................... 210 C. ONLINE-INFORMATIONEN ZU JAVA...211 D. LITERATURHINWEISE...213 UNIX................................................ 213 Rechnernetze.......................................... 213 TCP, UDP und RPC..................................... 214 Java................................................. 214 INDEX...215 xi