ebook img

Grundkurs Socketprogrammierung mit C unter Linux: So entwickeln Sie schlanke Web-Applikationen PDF

232 Pages·2004·4.467 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Grundkurs Socketprogrammierung mit C unter Linux: So entwickeln Sie schlanke Web-Applikationen

Martin Pollakowski Grundkurs Socketprogrammierung mit C unter Linux Aus dem Bereich IT erfolgreich lernen ~~~~--~~ ~-~-~.~-,~-" .-~~- Grundkurs Software-Entwlcklung Prozessmodellierung mit ARIS ® mit c++ von Heinrich Seidlmeier von Dietrich May Objektorientierte Grundkurs Datenbankentwurf Programmlerung In JAVA von Helmut Jarosch von Otto Rauh __, c_":._"c>_ ~.~~~~·o~_~~··_ Web-Programmlerung Anwendungsorlentierte f-_>c_",~~c von Oral Avcl, Ralph Trittmann und Werner Mellis Wlrtschaftslnformatlk OhneCzuC++ von Paul Alpar, Heinz Lothar Grob, Peter von Peter P. Bothner und Michael Kahler Weimann und Robert Winter Grundkurs JAVA Rechnerarchltektur von Dietmar Abts von Paul Herrmann .--~.~~ --~-- Aufbaukurs Wirtschaftslnformatlk Grundkurs Relatlonale Datenbanken -~--~-~<~ -~"~,~--~ .... ~-. von Dietmar Abts und Wilhelm Mulder von Rene Steiner Kompaktkurs Mlkrocontroller Grundkurs UNIX/Llnux von Silvia Limbach von Wilhelm Schaffrath Von Pascal zu Assembler Grundkurs MySOL und PHP von Peter Kammerer von Martin Pollakowski .. .......-~-~.~.-~~-"-~~ Das PC Wissen fiir IT-Berufe: Pascal "-.-~----~-~~~-~~---~,-~~ Hardware, Betriebssysteme, Netzwerktechnik von Doug Cooper und Michael Clancy von Rainer Egewardt Aufbaukurs JAVA Datenbank-Englneerlng von Dietmar Abts von Alfred Moos Grundkurs Informatik Grundkurs Verteilte Systeme von Hartmut Ernst ---.. .-~-~.~~~ von Gunther Bengel Kostentrigerrechnung mit SAP R/3® -~.-----~""--- Online-Publishing fiir Studenten und von Franz Klenger und Ellen Falk-Kalms Wissenschaftier Netze - Protokolle - Spezifikatlonen von Michael BeiBwenger von Alfred Olbrich SOL mit Oracle Grundlegende Algorithmen von Wolf-Michael Kahler von Volker Heun .c._,~o~""",_,_~, ~.,~~~~~-> ••~ ~~--- Module, Klassen, Vertrige Softwaretechnik mit Ada 95 von Karlheinz Hug von Manfred Nagl Grundkurs Betriebswirtschaftslehre Visual Basic fiir technische von Notger Carl, Rudolf Fiedler, William J6rasz Anwendungen und Manfred Kiesel von Jurgen Radel , --~--.-~-~ Relationales und objektrelationales SOL Controlling mit SAP R/3® von Wolf-Michael Kahler von Gunther Friedl, Christian Hilz Lem-und Arbeltsbuch SAP R/3® und Burkhard Pedell von Andre Maassen und Markus Schoenen Grundkurs Kostenstellenrechnung mit SAP R/3® Geschiftsprozess - Management von Franz Klenger und Ellen Falk-Kalms von Andreas Gadatsch ~~~--~-~ Grundkurs Algorithmen und Grundkurs IT-Controlling ~-~.~--~-~.--.~~-~.~<-~ Datenstrukturen In JAVA von Andreas Gadatsch und Elmar Mayer von Andreas Solymosi und Ulrich Grude Grundkurs Socketprogrammlerung Grundkurs Wlrtschaftslnformatlk mit C unter Llnux von Dietmar Abts und Wilhelm Mulder von Martin Pollakowski ----- .~""'"'---~~~~~~--"~ www.vieweg-it.de Martin Pollakowski Grundkurs Socketprogrammierung mit C unter Linux So entwickeln Sie schlanke Web-Applikationen ~ vleweg Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet uber <http://dnb.ddb.de> abrufbar. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne von Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten waren und daher von jedermann benutzt werden durfen. H6chste inhaltliche und technische Qualitat unserer Produkte ist unser Ziel. Bei der Produktion und Auslieferung unserer Bucher wollen wir die Umwelt schonen: Dieses Buch ist auf saurefreiem und chlorfrei gebleichtem Papier gedruckt. Die EinschweiBfolie besteht aus Polyathylen und damit aus organischen Grundstoffen, die weder bei der Herstellung noch bei der Verbrennung Schadstoffe freisetzen. 1. Auflage Marz 2004 Aile Rechte vorbehalten © Friedr. Vieweg & Sohn Verlag/GWV Fachverlage GmbH, Wiesbaden 2004 Der Vieweg Verlag ist ein Unternehmen von Springer Science+Business Media. www.vieweg-it.de Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschUtzt. Jede Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulassig und strafbar. Das gilt insbesondere fUr Vervielfaltigungen, Obersetzungen, Mikroverfilmungen und die Ein speicherung und Verarbeitung in elektronischen Systemen. Umschlaggestaltung: Ulrike Weigel, www.CorporateDesignGroup.de Gedruckt auf saurefreiem und chlorfrei gebleichtem Papier. ISBN 978-3-528-05884-5 ISBN 978-3-322-92933-4 (eBook) DOI 10.1007/978-3-322-92933-4 Vorwort Die Zahl der Nutzer des Internet wachst mit atemberaubender Geschwindig keit. humer mehr Menschen, aber auch immer mehr Maschinen erhalten Zu gang zum "Netz der Netze". Den Entwicklern von Web-Anwendungen erOff net sich somit ein weites Betatigungsfeld und Raum fUr nutzliche Innovatio nen. Die gesamte Kommunikation des Internet basiert auf einfachen und standardi sierten Protokollen. Die zugehbrigen Client- und Server-Programme kann man daher problemlos selbst programmieren. Die benbtigten Programmierhilfsmit tel sind zudem frei verfugbar und weit verbreitet. Client/Server-Programmierung mit Sockets (Socketprogrammierung) verspricht vielfaltigen Nutzen. Dem Lernenden ermbglicht sie einen "Blick hinter die Ku lissen" und fuhrt zu einem tieferen Verstandnis von "Browsern" und "Servern", und von Kommunikationsnetzen insgesamt. Dem Anwender ermbglicht sie die Entwicklung von maBgeschneiderten Programmen, den vollen Zugriff auf den Quellcode und damit die optimale Nutzung der verfUgbaren Ressourcen. Dieses Buch entstand aus einer Vorlesung uber "Kommunikationsnetze" fur Studierende der Elektrotechnik an der Fachhochschule Gelsenkirchen. Es ist ein Lehrbuch fUr Schuler, IT-Berufsanfanger und Studierende. Es wendet sich an Ingenieure und Praktiker, die daran interessiert sind, eigene Web-Clients und Server zu entwickeln, und die dies an einem konkreten Beispiel erlernen wollen. Programmierern der Informations- und Automatisierungstechnik bietet es einen zielorientierten Einstieg in die Thematik. Lernende und Lehrende in der Aus- und Weiterbildung werden von den verfUgbaren Lehrmaterialien zu satzlich profitieren. Dieses Buch ist kein Programmierhandbuch, das aile Details der benutzten Sprache erschbpfend behandelt. Auf entsprechende Literatur, die in Fulle ver fugbar ist, wird an geeigneter Stelle fUr weitergehende Studien verwiesen. Dieses Buch ist ein Lehrbuch, das gezielt ausgewahltes Fachwissen in uber sichtlichen Lehreinheiten vermittelt. In kleinen und liickenlosen Schritten werden Web-Clients und Web-Server entwickelt. Der Leser lernt aile wesentli chen Zusammenhange kennen und erhalt so ein Grundgerust fUr eigene Pro jekte. Das Buch gehbrt zu einer Vorlesung, die im 4. Semester eingeplant ist, und setzt grundlegende Informatikkenntnisse voraus. Fur das Programmieren der Anwendungsbeispiele sind Kenntnisse der Programmiersprache Coder einer anderen hbheren Programmiersprache erforderlich. Die konkret benbtigten C Konstrukte und Funktionen werden jedoch an geeigneter Stelle repetiert. Fur das Verstandnis der Zusammenhange sind Erfahrungen mit dem Internet hilf reich. v Vorwort Die verwendeten Softwarepakete (Editoren, C-Compiler) sind sowohl fUr Li nux als auch fUr Windows verfUgbar. Socket-Programmierung ist unter beiden Betriebssystemen moglich. Die hier entwickelten Beispielprogramme sind un verandert jedoch nur unter Linux lauffahig, fUr Windows mussen kleinere Modifikationen, insbesondere in den verwendeten Bibliotheken vorgenom men werden. Die prinzipielle Programmstruktur bleibt aber erhalten. Linux hat im Lehrbetrieb und Praxiseinsatz einige Vorzuge. Mit Linux lassen sich ganze PC-Pools kostengunstig ausstatten. Der Stoff wird im stetigen Wechsel von Theorie und Obung erarbeitet. Nach jedem Theoriekapitel kann das neue Wissen in einer Obung ausprobiert und verfestigt werden. Die Vorlesungsunterlagen (Prasentationsfolien, Obungszet tel, Hilfsblatter und Musterlosungen) konnen von einem Web-Server herun tergeladen werden. Die gesamte benotigte Software ist als Open-Source im Internet verfiigbar und kann kostenlos an die Studierenden verteilt werden. Das Buch besteht aus zwei Teilen: in den Kapiteln 1 - 4 erfolgt eine Einfuh rung in die Prinzipien der Internetkommunikation und die Entwicklung der Web-Clients (Browser). In den Kapiteln 5 - 8 erfolgt eine Vertiefung der Thematik durch die Programmierung der Web-Server. Zu Beginn des Buches werden die Prinzipien der Internet-Kommunikation er lautert und die fur die Socket-Programmierung wichtigen Protokolle vorge stellt. Das erste Kapitel dient somit der Begriffsklarung und Motivation. 1m zweiten Kapitel erfolgt eine EinfUhrung in die C-Programmierung unter Li nux. Die wichtigsten Hilfsmittel und Linux-Kommandos werden zusammenge stellt und erste Beispielprogramme entwickelt. Kapitel 3 steHt das erste Web-Client-Programm vor und fiihrt in die Verwen dung von Sockets ein. Dieses Programm kann schon zu beliebigen Internet Adressen und Port-Nummern Verbindungen herstellen. Danach wird dieser Client zu einem Web-Browser erweitert, der tatsachlich Daten von einem Web-Server anfordern kann. Das vierte Kapitel zeigt, wie Browser und Web-Server mit Hilfe des HTTP-Protokolls kommunizieren. Es folgt in Kapitel 5 ein Einstieg in die Server-Programmierung. Insbesondere wird das Starten und Verwalten von Prozessen unter Linux erortert. Kapitel 6 widmet sich der Datenubertragung yom Web-Server zum Browser. Der selbst geschriebene Server stellt nun eine Web-Seite im HTML-Format be reit, die jeder handelsubliche Browser darstellen kann. Web-Server verwalten in der Praxis mehr als eine Web-Seite. Daher wird im 7. Kapitel gezeigt, wie die Wunsche der Browser mit Hilfe eines Parsers analy siert und in ihre Bestandteile zerlegt werden konnen. Mit Kapitel 8 wird der Web-Server vervollstandigt. Er kann danach Statusmel dungen abgeben und beliebige Dateien an einen Browser senden. VI Vorwort Als Erganzung finden sich im Anhang Zusammenstellungen von Linux- und HTML-Befehlen sowie eine Sammlung von C-Funktionen. Diese haben sich in den Dbungsstunden als sehr nutzlich erwiesen. Eine kommentierte Bibliographie gibt einen Dberblick uber die weiterfUhren de Literatur. Die wichtigsten Bucher zum Thema werden inhaltlich beschrie ben und bewertet. AbschlielSend noch ein herzliches Dankeschbn an Herrn Peter Mroczek fUr die tatkraftige Unterstlitzung bei der DurchfUhrung der Lehrveranstaltung Kommunikationsnetze. Diesem Buch wunsche ich eine freundliche Aufnahme und den Lesern viel Erfolg beim Einstieg in die Welt der Client/Server-Programmierung. Fur Kritik und Anregungen bin ich jederzeit sehr dankbar ! Gelsenkirchen, im Februar 2004 Martin Pollakowski Kontakt: E-Mail: [email protected] Web-Seiten: http://www.fh-ge1senkirchen.de/fbOl/homepages/po11akowski/socket/index.htm1 http://e1ektrotechnik.fh-ge1senkirchen.de/informatik/kn VII Inhaltsverzeichnis 1 Kommunikation im World-Wide-Web 1 1.1 Client und Server 1 1.2 Das Internet Protokoll OP) 4 1.3 Das Transmission Control Protokoll (TCP) 6 1.3.1 Datagramme und Streams 6 1.3.2 Port-Nummern 8 1.4 Das Hypertext Transfer Protokoll (HTTP) 9 1.5 Die Hypertext Markup Language (HTML) 11 1.6 Verknupfung von IP, TCP, HTTP und HTML 12 1. 6. 1 Schichtenstruktur der Kommunikationssoftware 12 1. 6. 2 Programmierschnittstelle 13 1. 6. 3 Aufbau eines Datenpaketes 14 1.7 Weiterfuhrende Literatur zur "Socket-Programmierung" 15 1.8 Wiederholungsfragen 16 2 C-Programmierung unter Linux 17 2.1 Die Linux-Arbeitsumgebung einrichten 17 2.1.1 Linux installieren 17 2.1.2 Linux starten 18 2.1.3 Ein Arbeitsverzeichnis einrichten 20 2.2 Ein einfaches Beispielprogramm editieren und speichern 21 2.2.1 Quellcode editieren 21 2.2.2 m-Tools fur MS-DOS/Windows-Disketten 23 2.2.3 Indude-Anweisungen 23 2.2.4 Die Funktion mainO 24 2.2.5 Daten ausgeben mit der Funktion printfO 26 2.3 Programme compilieren 26 IX Inhaltsverzeichnis 2.3.1 Aufruf des Compilers gcc 26 2.3.2 Fehlermeldungen des Compilers gcc 27 2.3.3 Fehlerbeseitigungs-Strategie 29 2.4 Anwendungen ausfUhren 30 2.5 Entwicklungsumgebungen 31 2.6 Ubungsaufgaben zu diesem Kapitel 31 2.6.1 Aufgabe 2.1: Ein Array mit Quadratzahlen fUllen 32 2.6.2 Aufgabe 2.2: Eine Datenstruktur fLir komplexe Zahlen 32 2.7 Lbsungshinweise und Repetitorium 33 2.7.3 Aufgabe 2.1: Ein Array mit Quadratzahlen fUllen 33 2.7.4 Aufgabe 2.2: Eine Datenstruktur fUr komplexe Zahlen 36 2.8 Literaturhinweise zu Linux und C 40 3 Ein Client, der Verbindungen aufbaut 43 3.1 Was ist ein "Socket" ? 43 3.2 Ablauf eines Client-Programms 44 3.3 Beispielprogramm ClientConnect.c 45 3.3.1 Programmablaufplan 46 3.3.2 Header-Dateien 46 3.3.3 Varia bIen -Deklarationen 47 3.3.4 Einen Socket einrichten mit der Funktion socketO 47 3.3.5 Verbindungstyp und Protokollnummer 48 3.3.6 Adressinformation des Zielrechners zusammenstellen 49 3.3.7 Verbindungen aufbauen mit der Funktion connectO 52 3.3.8 Auswertung des Ruckgabewertes von connectO 53 3.3.9 Socket schlie Ben mit closeO 55 3.4 Ubungsaufgabe 1: nach offenen Ports suchen 55 3.4.1 Aufgabenstellung 55 3.4.2 Well-Known Ports 56 3.5 Lbsungshinweise zu Aufgabe 1 57 3.6 Ubungsaufgabe 2: Kommandozeilenparameter 59 3.6.1 Aufgabenstellung 59 x Inhaltsverzeichnis 3.6.2 Kommandozeilenparameter 60 3.7 Losungshinweise zu Aufgabe 2 61 4 Ein Client, der Dateien anfordert 65 4.1 Das Hypertext Transfer Protokoll (HTTP) 65 4.1.1 Prinzipieller Aufbau des Protokolls 65 4.1.2 Datenfluss des HTTP-Protokolls 66 4.1.3 HTTP-Befehl zum Anfordern einer Datei 67 4.2 Beispielprogramm ClientDateiAnfordern.c 67 4.2.1 Quellcode 67 4.2.2 HTTP-Befehl abschicken 69 4.2.3 Antwort aus dem Socket lesen 70 4.2.4 Beispiel fUr eine Server-Antwort 72 4.2.5 Mogliche Bildschirmausgaben des Beispielprogramms 73 4.2.6 HTTP Ergebnismeldungen 75 4.3 Ubungsaufgabe 1: Server-Meldung priifen 77 4.3.1 Aufgabenstellung 77 4.3.2 Text suchen mit der Funktion strstrO 77 4.4 Losungshinweise zu Aufgabe 1 77 4.4.1 Das Programm ClientAntwortAuswerten.c 77 4.4.2 Bildschirmausgaben von ClientAntwortAuswerten 80 4.5 Ubungsaufgabe 2: empfangene Datei speichern 81 4.5.1 Aufgabenstellung 81 4.5.2 Der Dateizeiger (Datentyp FILE) 81 4.5.3 Dateien offnen mit der Funktion fopenO 81 4.5.4 In eine Datei schreiben mit der Funktion fprintfO 83 4.5.5 Dateien schlieBen mit der Funktion fcloseO 83 4.6 Losungshinweise zu Aufgabe 2 83 4.6.1 Das Programm ClientDateiSpeichern.c 83 4.6.2 Bildschirmausgaben von ClientDateiSpeichern 86 4.6.3 Die Datei empfangen.txt 87 4.7 Literaturhinweise zum HTTP-Protokoll 88 XI

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.