Verteilte Systeme. Axel-Tobias Schreiner Fachbereich Mathematik-Informatik Universität Osnabrück

Größe: px
Ab Seite anzeigen:

Download "Verteilte Systeme. Axel-Tobias Schreiner Fachbereich Mathematik-Informatik Universität Osnabrück"

Transkript

1 1 Verteilte Systeme Axel-Tobias Schreiner Fachbereich Mathematik-Informatik Universität Osnabrück Eine Einführung in praktische Client-Server Programmierung unter UNIX vor allem im Bereich der TCP/IP-Protokolle, mit der Tool-Command-Language (TCL) und mit C und Objective C. Dieser Band enthält Kopien der OH-Folien, die in der Vorlesung verwendet wurden. Diese Information steht außerdem auf NeXT-Systemen online zur Verfügung; sie ist in sich und mit der Systemdokumentation über Hypertext-Links verbunden und für den Librarian aufbereitet. Die Beispielprogramme werden maschinell aus diesem Text extrahiert. Der Band stellt kein komplettes Manuskript der Vorlesung dar. Zum Selbststudium müßten zusätzlich ein Buch über Client-Server-Programmierung sowie ein Teil der Systemdokumentation konsultiert werden; Kenntnisse von ANSI-C und Objective C werden vorausgesetzt. Inhalt 0 Einführung 1 1 Schichten 5 2 TCL 25 3 TCP-Programmierung 53 4 TCP-Programmierung mit Objective C 73 5 TCP-Tools für die Shell 93 6 Pseudo-Terminals Datagramm-Sockets Eine grafische Oberfläche notes ein Beispiel für Groupware Remote Procedure Calls mit rpcgen Verteilte Objekte Ein Web-Browser als Frontend NFS 217

2 2 Kalender Oktober 10. Einführung. Schichten-Modell. telnet, traffic, netstat Client/Server: Prozesse, Programme. TCL TCP-Verbindungen. bind, accept, connect, echo, doecho RPC. dp_makerpc*, Stubs, Sicherheit RPC, schrittweiser Ablauf. Telefonbuch-Objekt Verteilte Objekte: Telefonbuch, Portmapper arp, ifconfig, rpcinfo, nfsstat, spray, netstat, snmp 01 November 2. TCL: Grundbegriffe, trace TCL: Ausdrücke, string, Listen, Kontrollstrukturen TCL: Prozeduren, Blockstruktur, exec, file, cat, return TCL: info level, return. Sockets [krank] 21. [Skalla, RZ] Routing und WAN-Anschluß 23. TCP-Programmierung in C Klient mit select. Klassen für Sockets Klassen für Sockets: Object, Address, Inet, Unix, Fd 04 Dezember 5. Socket, Tcp, Acceptor. TCP-Tools: tcp, tcpd, snoop Implementierung der Shell-TCP-Tools. Pseudo-Terminals Pseudo-Terminals, stty-modes. use-server, Parsierung Datagramme. use-server und -Klient in TCL und C TK, grafische Oberfläche für use-klient 08 Januar 9. Client/Server-Prinzip bei X. use-oberfläche use: Anschluß am Server, asynchrone/robuste Version notes: Idee, Architektur, Parser, grafische Oberfläche notes: Verbindung zum Server XDR, RPC. xin, xout, Darstellung auf dem Netz. High-level rpcgen Prinzip und Sprache. mbox/mboxd Java. rpcgen: Dummy-Funktionen, Monolith, Klient. 10 Februar 1. rpcgen: mbox-funktionen. Verteilte Objekte: tel leaky und tel. Protokolle für mbox mbox httpd, HTML plus Objective C NFS 13

3 3 Termine Vorlesung Dienstag, 10:15 31/449a Schreiner Donnerstag, 10:15 31/449a Übungen Freitag, 8:15 31/449a Gremeyer Freitag, 10:15 31/322 Sprechstunde Donnerstag ab 10:00 n.v. 31/321 Schreiner (2480, axel) 31/325 Gremeyer (2482, gremeyer) Literatur Diese Folien befinden sich als Dateien im Katalog../skript und gedruckt in der Lehrsammlung. Bitte nicht per Laserdrucker drucken. Es gibt heute sehr viele Bücher über UNIX, verteilte Systeme und Client-Server Programmierung. Manche behandeln die Protokolle, andere die Programmierung von Verbindungsmechanismen und wieder andere den Umgang mit Klienten. Die folgenden Bücher sind nützlich. Soweit vorhanden, befinden sie sich in der Lehrsammlung. Comer Internetworking with TCP/IP Comer/Stevens Design, Implementation, and Internals Comer/Stevens X... Client-Server Programming and Applications Kerninghan/Ritchie Programmieren in C Kernighan/Pike Der UNIX-Werkzeugkasten Ousterhout X Tcl and the Tk Toolkit Stevens UNIX Network Programming Stevens TCP/IP Illustrated, Vol. 1: The Protocols Wall/Schwartz Programming perl Welch Practical Programming in Tcl and Tk Einige meiner Beispiele habe ich in Artikeln in unix/mail behandelt. Die Manual-Seiten befinden sich online im Katalogbereich /NextLibrary/Documentation/ManPages und können mit dem Kommando NeXT mit dem Librarian betrachtet werden. man oder auf

4 4 leere Seite

5 5 1 Schichten Letztlich sollen Applikationen zusammenarbeiten. Die dazu nötige Software wird in Schichten aufgebaut, die von den elektrischen Aspekten bis zu den Anwendungsprogrammen reichen. Das sogenannte OSI-Modell hat sieben Schichten, bei der TCP/IP-Protokollfamilie unterscheidet man vier Schichten, die zum Teil mit OSI übereinstimmen: Application Presentation Session TFTP SNMP NFS NIS NSP portmapper RPC XDR FTP LPD SMTP TELNET Transport UDP TCP Network IP ICMP ARP RARP Data Link IEEE Ethernet andere Physical

6 6 Klienten- und Serverprozesse Auf dem eigenen Rechner erfährt man Datum und Uhrzeit mit date: $ date Sat Apr 9 16:24:40 MET DST 1994 $ Wenn man zugreifen kann, erfährt man Datum und Uhrzeit von einem fremden Rechner etwa so: $ rsh linux -l axel date Sat Apr 9 15:37:35 GMT 1994 $ Mit rsh wird hier unter dem Benutzernamen axel auf dem Rechner linux das Kommando date ausgeführt. Dazu ist eine Anmeldung auf dem fremden Rechner nötig. Auch ohne Berechtigung funktioniert folgendes: $ telnet linux daytime Trying Connected to linux. Escape character is ^]. Sat Apr 9 15:45: Connection closed by foreign host. $ telnet linux daytime 2>/dev/null Connected to linux. Escape character is ^]. Sat Apr 9 15:51: $ Mit telnet wird hier eine Verbindung zum Rechner linux und dort zum Port des daytime-service aufgebaut. Dieser Service liefert eine Zeile mit einem Datumstempel, die telnet dann ausgibt. In jedem Fall arbeiten ein Klient und ein Server zusammen: der Klientenprozeß, wie rsh oder telnet, wird vom Benutzer an einem Rechner aufgerufen und liefert die gewünschte Leistung. der Klient kontaktiert einen Service, wie shell oder daytime, auf einem (anderen) Rechner und läßt vom dafür zuständigen Serverprozeß, wie rshd oder inetd, die gewünschte Leistung erbringen. Die Programmierprobleme bestehen einerseits darin, daß der Klient und der Serverprozeß Verbindung aufnehmen müssen der Serverprozeß muß eigentlich existieren, bevor man mit ihm Verbindung aufnehmen kann und andererseits in der programmtechnischen Verpackung der Vorgänge.

7 7 Klienten- und Serverprogramme Da das Betriebssystem alle Peripheriegeräte verwaltet, braucht man letztlich (neue) Systemaufrufe, mit denen Prozesse auf verschiedenen Rechner Kontakt aufnehmen und Daten transferieren können. In C benötigt man reichlich verwickelte Strukturen. In TCL-DP sind die Abläufe prinzipiell gleich, aber durchschaubarer: {01/echo #!/usr/local/bin/dptcl -f # echo -- tcl-script for an echo client puts -nonewline "host: "; set host [gets stdin] puts -nonewline "port: "; set port [gets stdin] set data [lindex [dp_connect $host $port] 0] while {! [eof stdin] { puts $data [gets stdin] puts [gets $data] exit 0 { TCL ist eine Shell-artige Kommandosprache, TCL-DP enthält zusätzlich eingebaute Kommandos für Distributed Programming. Für den echo-klienten wesentlich ist, daß dp_connect eine Verbindung zu einem Rechner und einem Port (also einem File-Deskriptor bei einem Prozeß) aufbaut und als Resultat eine Liste liefert, deren erster Eintrag ein File-Deskriptor ist. echo kann so benutzt werden: $./echo host: linux port: 7 hi there, linux hi there, linux ^D $./echo host: localhost port: daytime Tue Apr 12 04:37: ^C $

8 8 Ein eigener doecho-server muß vorher gestartet werden. Er kann ungefähr so programmiert werden: #!/usr/local/bin/dptcl -f # doecho -- tcl-script for an echo server set service [dp_connect -server 0] puts "echo server on port [lindex $service 1]" close stdout set call [lindex $service 0] set data [lindex [dp_accept $call] 0] catch { exit 0 while 1 { puts $data [gets $data] {01/doEcho { In dieser Form konstruiert dp_connect einen File-Deskriptor für einen Server und liefert als zweites Listenelement die vom System vergebene Port-Nummer. dp_accept nimmt den File-Deskriptor call und wartet, bis jemand anruft. Die davon resultierende Liste enthält als erstes Element dann den File-Deskriptor, über den Daten transferiert werden können. catch schnappt sich hier den Fehler, der beim Abbruch des echo-klienten ankommt. Das funktioniert dann etwa so: $ set `doecho &` $ echo echo server on port 2660 $./echo host: next port: 2660 hi there hi there ^D [1]+ Done doecho $ Über die Byte-Verbindung kann man nun Daten so zwischen Prozessen auf verschiedenen Rechnern austauschen, wie das auf einem Rechner mit (zwei!) Pipes möglich wäre. Es bleibt das Problem der Datenformate, Synchronisation, etc.

9 9 Klienten- und Serverprozeduren Remote Procedure Calls (RPC) sind eine höchst elegante Verpackung von Kommunikation über eine Byte-Verbindung. Abgesehen vom Aufwand der Einrichtung einer Verbindung hat der Klient den Eindruck, daß er lokale Prozeduren aufruft: #!/usr/local/bin/dptcl -f # rpc -- tcl-script to execute RPCs {01/rpc set server {; set host { # leere Liste proc server { { global server host if {$server == { { puts -nonewline "host: "; set host [gets stdin] puts -nonewline "port: "; set port [gets stdin] set server [dp_makerpcclient $host $port] return $server proc GetDate { { dp_rpc [server] GetDate proc GetUsers { { dp_rpc [server] GetUsers puts [GetDate] puts "$host:[getusers] user(s)" exit 0 { dp_makerpcclient baut eine Verbindung auf, über die mit dp_rpc ein Prozeduraufruf verschickt und Resultate empfangen werden können. Typischerweise verkleidet man die Remote Procedure mit einer gleichnamigen lokalen Prozedur.

10 10 #!/usr/local/bin/dptcl -f # dorpc -- tcl-script for an RPC server {01/doRpc puts "[pid] RPC server on port [dp_makerpcserver 0]" close stdout proc GetDate { { exec date # RPC: date proc GetUsers { { # RPC: numer of users exec who wc -l { Der Server ist in TCL-DP noch einfacher zu schreiben. dp_makerpcserver richtet die Verbindung ein und liefert die Port-Nummer. Im Server werden dann lokale Prozeduren per Namen für den Klienten ausgeführt. Die Prozeduren müssen natürlich geschlossen sein, das heißt, sie können nur auf globale Variablen im Server und auf Argumente vom Klienten zugreifen. Das funktioniert ungefähr so: $ set `dorpc &` $ echo 2008 RPC server on port 2672 $ rpc host: next port: 2672 Sat Apr 9 20:15:19 MET DST 1994 next: 7 user(s) $ kill $1 Bei korrekter Verpackung muß man die lokalen Prozeduren aus dem Server unverändert in den Klienten einfügen können, damit der Klient autark arbeiten kann. Eigentlich ist die Verpackung ideal aber wenn man beliebige Argumente über verschiedene Rechnerarchitekturen verschicken will, hat man zum Beispiel auch Probleme mit der Byte-Reihenfolge. Außerdem handelt man sich ein Sicherheitsproblem ein.

11 11 Verteilte Objekte Mit Prozeduren kann man ein primitives Telefonbuch in TCL so implementieren: set tel { {axel 2480 {bischof 2534 {gremeyer 2482 {jutta 2491 {gskalla 2486 {01/tel.tcl proc tel {name args { global tel set n [lsearch $tel "$name *"] if {$n >= 0 { return [lindex [lindex $tel $n] 1] if {[llength $args] { lappend tel [list $name [lindex $args 0]] return { Das Programm müßte man interaktiv verwenden, und es sammelt seine Daten nur während der Laufzeit in einer Liste von 2-elementigen Listen: $ dptcl % source tel.tcl % tel axel 2480 % tel gerhard % tel gerhard 2487 % tel gerhard 2487 %

12 12 Will man mehrere verschiedene Telefonbücher, muß man den Prozeduren das Telefonbuch als Argument geben. Man kann aber auch in TCL-DP so implementieren, daß man das Telefonbuch als Objekt ansieht, an das man die Anfragen in Form von Nachrichten schickt: {01/phoneBook.dp proc phonebook {book args { # constructor dp_objectcreateproc phonebook $book dp_objectslotset $book tel { {axel 2480 {bischof 2534 {gremeyer 2482 {jutta 2491 {gskalla 2486 eval $book configure $args; # fuer DP return $book proc phonebook.tel {book name args { # <book> tel <name> [number] set tel [dp_getf $book tel] set n [lsearch $tel "$name *"] if {$n >= 0 { return [lindex [lindex $tel $n] 1] if {[llength $args] { lappend tel [list $name [lindex $args 0]] dp_setf $book tel $tel return { Ein Objekt ist in TCL-DP eine Prozedur. Die Instanzenvariablen sind sogenannte Slots, auf die man mit entsprechenden Vokabeln eigentlich wie auf Strukturkomponenten zugreifen kann. Jetzt kann man mehrere Telefonbücher verwenden: $ dptcl % source phonebook.dp % phonebook inf inf % inf tel axel 2480 % inf tel gerda 2480 % inf tel gerda 2480 % phonebook math math % math tel gerda % math tel voges 2561 % inf tel voges %

13 13 Da man mit Objekten bereits über Nachrichten verkehrt, bietet sich an, Objekte auf verschiedene Rechner zu verteilen und die Nachrichten über RPC zu vermitteln. Wenn der Mechanismus entsprechend implementiert ist, sollte man zwischen lokalen und verteilten Objekten keinen Unterschied merken können. Bei TCL-DP benötigt die Klasse noch drei Methoden : {01/phoneBook.dp proc phonebook.configure {book args { # fuer DP eval dp_objectconfigure phonebook $book $args proc phonebook.slot-value {book slot { dp_objectslot $book $slot # fuer DP proc phonebook.destroy {book { # destructor dp_objectfree $book { Jetzt kann ein Serverprozeß ein Telefonbuch anlegen und auf Wunsch verteilen: {01/doTel #!/usr/local/bin/dptcl -f source phonebook.dp phonebook informatik puts "[pid] phonebook on port [dp_makerpcserver]" close stdout proc access { { global dp_rpcfile dp_distributeobject informatik $dp_rpcfile phonebook {

14 14 Ein Klient legt eine RPC-Verbindung an und bittet den Server durch Aufruf von access, ihm Zugriff auf das Telefonbuch zu geben. dp_makerpcclient verwendet dp_connect; ein leerer String wird als Namen des lokalen Rechners interpretiert. {01/tel #!/usr/local/bin/dptcl -f source phonebook.dp switch [llength $argv] { 2 { dp_rpc [dp_makerpcclient { [lindex $argv 0]] access puts [informatik tel [lindex $argv 1]] 3 { dp_rpc [dp_makerpcclient { [lindex $argv 0]] access informatik tel [lindex $argv 1] [lindex $argv 2] default { puts stderr "usage: tel port name \[number\]" exit 0 { Es geht hier nur um die Verpackung: entscheidend ist, daß nach dem Aufbau der Verbindung die Benutzung des verteilten Objekts informatik nicht von einer lokalen Benutzung zu unterscheiden ist das liegt an der Verwendung der besonderen Vokabeln dp_setf und dp_getf zum Zugriff auf die Slots. $ set `dotel &` $ echo 834 phonebook on port 2687 $ tel $5 axel 2480 $ tel $5 vornberger 2481 $ tel $5 vornberger 2481 $ kill $1

15 15 Portmapper Damit ein RPC-Klient seinen Server bequem finden kann, muß man natürlich Port und Rechner des Servers unsichtbar zur Verfügung stellen das ist die Aufgabe des portmapper, der an einer öffentlichen Adresse per RPC die Zugriffsinformation für RPC-Services liefert. {01/portMapper.dp # PMset <program> <host> <port> installs {<program> <host> <port> # PMset <program>?<host>? removes {<program> <host> * # PMfind <program> returns first {host port for <program> # PMfind <program> <host> returns {<host> port for <program> proc portmapper { { # client s connection global portmapper if {[llength $portmapper] > 1 { # connect upon first access set portmapper [eval dp_makerpcclient $portmapper] return $portmapper; # always return socket proc PMset {args { eval dp_rpc [portmapper] PMset $args proc PMfind {args { eval dp_rpc [portmapper] PMfind $args set portmapper {{ 12345; #!/usr/local/bin/dptcl -f # published {host port {01/doPortMapper source portmapper.dp set map [list [concat portmapper $portmapper]] dp_makerpcserver [lindex $portmapper 1] proc PMset {program {host * args { global map while {[set n [lsearch $map "$program $host *"]] >= 0 { set map [lreplace $map $n $n] if {[llength $args] { lappend map [list $program $host [lindex $args 0]] proc PMfind {prog {host * { global map if {[set n [lsearch $map "$prog $host *"]] >= 0 { return [lrange [lindex $map $n] 1 2] return {

16 16 Ähnlich wie im Telefonbuch speichern wir Programmname, Server-Adresse und Port als Liste in einer Liste map. Anders als das das offizielle Programm portmap tut, verwenden wir einen einzigen Portmapper im Netz, dessen Adresse zurest in der Variablen portmapper im Paket portmapper.dp gespeichert ist, das jeder Klient des Portmappers verwendet. Ein Portmapper-Klient wie unser Telefonbuch-Server meldet sich an, wenn er gestartet wird: {01/doTel2 #!/usr/local/bin/dptcl -f source portmapper.dp; # publish this host as server PMset phonebook [exec hostname] [dp_makerpcserver] dp_closerpc [portmapper] source phonebook.dp proc access {book { # [make and] distribute a phonebook global dp_rpcfile if {[info commands $book] == { { phonebook $book dp_distributeobject $book $dp_rpcfile phonebook { Mit access kann ein Telefonbuch-Klient den Server bitten, ein neues Telefonbuch anzulegen, falls es noch nicht existiert (es muß eine Prozedur sein!).

17 17 Ein Telefonbuch-Klient ist zuerst ein Portmapper-Klient und erfährt dort, wo er den Telefonbuch-Server finden kann: {01/tel2 #!/usr/local/bin/dptcl -f source portmapper.dp; set host [PMfind phonebook] dp_closerpc [portmapper] # find the phonebook server source phonebook.dp set books $argv; # skript arguments are phonebooks set server [eval dp_makerpcclient $host] foreach book $books { dp_rpc $server access $book while 1 { # cycle through phone books foreach book $books { while 1 { # ask for name?number? puts -nonewline "$book: "; set ask [gets stdin] if [eof stdin] { puts "" exit 0 dp_update if [llength $ask] { set answer [eval $book tel $ask] if {$answer!= "" { puts $answer else break { dp_update ist nötig, da sonst nur in der Hauptschleife implizit Anrufe verarbeitet werden. $ doportmapper & portmapper=$! $ dotel2 & tel2=$! $ tel2 inf math inf: voges inf: math: voges 2561 math: voges 2561 math: inf: voges inf: ^D $ kill $tel2 $portmapper

18 18 Network-Layer Es gibt verschiedene Kommandos, mit denen man sich Informationen auf dieser Ebene ansehen kann: $ arp -a linux ( ) at 2:60:8c:3d:8d:3c esix ( ) at 0:0:c0:20:72:2d arp zeigt und manipuliert die Informationen für ARP, also die Abbildung von IP- zu Ethernet-Adressen. $ ifconfig lo0 lo0: flags=69<up,loopback,notrailers,running> inet netmask ff $ ifconfig en0 en0: flags=63<up,broadcast,notrailers,running> inet netmask fffff000 broadcast ipconfig zeigt und manipuliert beim Systemstart die Einstellung der Interface-Struktur im Kern, also die Festlegung der eigenen IP-Adresse und die Parameter für eine Netz-Schnittstelle. $ rpcinfo -p esix program vers proto port udp 111 portmapper udp 111 portmapper tcp 111 portmapper tcp 111 portmapper udp 2049 nfs udp 1027 mountd tcp 1028 mountd rpcinfo zeigt, welche Programme beim offiziellen portmapper angemeldet sind, um zu zeigen, auf welchem Port sie RPC empfangen. Außerdem kann man die Prozedur 0 der Programme anrufen, um zu sehen, ob die Programme überhaupt antworten: $ rpcinfo -u esix program version 2 ready and waiting $ rpcinfo -t esix program version 1 ready and waiting $ rpcinfo -b next next ^C

19 19 nfsstat zeigt speziell die Statistik der NFS-RPCs. $ nfsstat... Client nfs: calls badcalls nclget nclsleep null getattr setattr root lookup readlink read 0 0% 38 29% 0 0% 0 0% 66 50% 0 0% 18 13% wrcache write create remove rename link symlink 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% mkdir rmdir readdir fsstat 0 0% 0 0% 4 3% 5 3% Mit spray kann man Erreichbarkeit und Antwortverhalten für RPCs untersuchen: $ spray next sending 1162 packets of lnth 86 to next packets (21.343%) dropped by next 605 packets/sec, bytes/sec

20 20 netstat zeigt verschiedene Netz-Datenstrukturen und Statistiken: $ netstat Active Internet connections Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp 0 0 next.time esix.1304 TIME_WAIT tcp 0 0 next.1023 esix.login ESTABLISHED tcp next.799 next.802 ESTABLISHED tcp 0 0 next.802 next.799 ESTABLISHED $ netstat 5 input (en0) output input (Total) output packets errs packets errs colls packets errs packets errs colls ^C $ netstat -i Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll en next lo loopback localhost en0* 1500 none none $ netstat -m 76/256 mbufs in use: 4 mbufs allocated to packet headers... $ netstat -s ip interrupt queue:... ip: total packets received 0 bad header checksums... icmp: 0 calls to icmp_error... tcp: 5571 packets sent 2398 data packets ( bytes) 10 data packets (9744 bytes) retransmitted packets received 3128 acks (for bytes) 988 duplicate acks... udp: 0 incomplete headers 0 bad data length fields 0 bad checksums

21 21 Adressierung Im Netzwerk-Layer werden physikalische Adressen (zum Beispiel 6-Byte-Ethernet) mit logischen Adressen (4-Byte Internet) verknüpft. Mit Name-Service (NIS, DNS) kann man zu einem Rechnernamen die Internet-Adresse erfahren. Mit ARP kann man zu einer Internet- die Ethernet-Adresse erfahren. Internet-Adressen sind hierarchisch vergeben. Wenn ein Paket an eine bestimmte Internet-Adresse geschickt werden soll, zeigen die Route-Tabellen, wie man vorgehen muß. $ netstat -r Routing tables Destination Gateway Flags Refs Use Interface localhost localhost UH lo next U en0 $ netstat -rn Routing tables Destination Gateway Flags Refs Use Interface UH lo U en0 Die Zieladresse paßt entweder insgesamt oder in einem Netz-Teil (von links her) zu einer Destination; dann wird das Paket an die Ethernet-Adresse des zugehörigen Gateway geschickt. Normalerweise gibt es noch einen Eintrag default, an den die übrigen Pakete geschickt werden. Ob man einen Rechner erreicht, kann man mit ping prüfen. traceroute manipuliert die Pakete so, daß sie nur jeweils einen Rechner weit(er) kommen und zeigt, wie ein Rechner erreicht wird: $ ping esix PING esix: 56 data bytes 64 bytes from : icmp_seq=0. time=30. ms 64 bytes from : icmp_seq=1. time=2. ms ^C ----esix PING Statistics packets transmitted, 2 packets received, 0% packet loss round-trip (ms) min/avg/max =/usr/local $ traceroute rzserv traceroute to rzserv ( ), 30 hops max, 38 byte packets 1 rzrouter ( ) 9 ms 3 ms 3 ms 2 neptun ( ) 5 ms 4 ms 4 ms 3 rzserv ( ) 7 ms 6 ms 6 ms

22 22 Netzwerk-Management snmp Bei NeXTSTEP 3.2 kann man in der NetInfo-Datenbasis etwa folgendes eintragen: locations/snmp/ enabled communities/ public/ yes networks Jetzt wird beim Systemstart von /etc/rc aus das Programm /usr/etc/snmpd erfolgreich gestartet und folgende Anfragen sind möglich: $ snmp status localhost localhost (NeXT.1.1), Uptime: 0:13:03 NeXT Mach 3.2: Mon Oct 18 21:57:41 PDT 1993; root(rcbuilder):mk obj~2/rc_m68k/release_m68k Name Speed Type Stat Ibyte Obyte Ierr Oerr Physical Address en0 other up 88KB 87KB <.1% <.1% 00:00:0F:00:B3:36 lo0 other up 1.6MB 1.6MB <.1% <.1% en0 10Mb ethernet up 88KB 87KB <.1% <.1% $ snmp localhost snmp> walk system system.sysdescr.0 NeXT Mach 3.2: Mon Oct 18 21:57:41 PDT 1993; root(rcbuilder):mk obj~2/rc_m68k/release_m68k (OCTET STRING) system.sysobjectid.0.iso.org.dod.internet.private.enterprises.next.1.1 (OBJECT IDENTIFIER) system.sysuptime.0 0:02:41 (Timeticks, 16165) snmp> ^D $ snmpnetstat localhost Active Internet Connections Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp 0 0 next.time esix.2413 TIMEWAIT tcp 0 0 next.700 next.703 ESTABLISHED tcp 0 0 next.700 next.761 ESTABLISHED tcp 0 0 next.703 next.700 ESTABLISHED tcp 0 0 next.761 next.700 ESTABLISHED Allgemein kann man in /etc/snmp.mib erahnen, welche Anfragen beantwortet werden: system interfaces at ip icmp tcp udp egp Grundsätzlich ist für SNMP eine erweiterbare, hierarchische Datenbasis vereinbart, in der Variablen einzeln oder in Gruppen abgefragt oder gesetzt werden können. NeXT verwendet PD-Software, um wenigstens die Netzaspekte abfragen zu lassen.

23 23 Monitore Für den Super-User gibt es verschiedene Programme, mit denen man den Netzverkehr auf der Basis von Internet-Adressen beobachten kann. etherfind und tcpdump wählen Pakete nach verschiedenen Kriterien und geben sie decodiert aus, traffic und etherman stellen den Verkehr grafisch dar. traffic

24 24 etherman

25 25 2 TCL John Ousterhouts Tool Command Language (TCL) ist eine zeilenorientierte, Shell-ähnliche Kommandosprache, deren Interpreter als C-Funktion in andere Programme eingebettet und mit neuen Kommandos in Form von C-Funktionen leicht erweitert werden kann. Sie kann deshalb als Standard und Basis für Kommandosprachen verwendet werden. Diese Beschreibung bezieht sich wie Ousterhouts Buch auf TCL Version 7.3 und TK Version 3.6. Lexikalische Aspekte Ein TCL-Skript besteht aus einem oder mehreren Kommandos, die durch Zeilentrenner oder Semikolon getrennt sind. Ein Kommentar reicht von # bis zum nächsten Zeilentrenner, aber nur, wenn # das erste Zeichen des ersten Worts eines Kommandos ist. Ein Kommando besteht aus einem oder mehreren Worten, die durch Leerzeichen oder Tabulatorzeichen getrennt sind. Jedes Zeichen eines TCL-Skripts wird bei jedem Durchgang durch den TCL-Interpreter exakt einmal bearbeitet, dabei wird exakt einmal ersetzt und/oder bewertet.

26 26 Ersatz für Variablen Mit $ wird der Wert einer Variablen abgerufen, die allerdings existieren muß: $ tclsh % set var 2 2 % expr $var*3 6 Der Variablenname ist fast beliebig, bei Bedarf kann er mit { abgetrennt werden. Der Wert einer Variablen ist immer eine Liste von Werten, die beim Ersatz jedoch eine Liste bleibt. Ein einzelner Wert ist immer ein String, der von Kommandos aber oft speziell interpretiert wird. Ersatz für Kommandos Mit [] wird der Wert des eingeschlossenen Kommandos abgerufen: % set % set 66 [expr ${33*2] 66 Auch hier kann der Wert eine Liste sein, oder er kann Teil eines Worts werden: % set ab {a b a b % set c ${abc a bc % llength $c 2 Anscheinend wird von links her abgearbeitet man sollte also wohl eingebettete Nebeneffekte vermeiden: % set b 4 4 % set b [expr $b+ [set b 6]] 10 % Ersatz für Gegenschrägstrich Mit dem Gegenschrägstrich erreicht man dasselbe wie in C: Darstellen von Sonderzeichen; Verhindern, daß Zeichen wie ; $ [] { interpretiert werden, sowie Fortsetzen von Zeilen.

27 27 Zitieren mit Doppelanführungszeichen Innerhalb von Doppelanführungszeichen verlieren Leerzeichen, Tabulatorzeichen, Zeilentrenner und Semikolon ihre besondere Bedeutung, aber die drei Ersatz-Operationen werden nach wie vor vorgenommen. % puts "\$c enthaelt \"$c\"" $c enthaelt "a bc" Es entsteht allerdings eine Liste, deren Trennzeichen offenbar intern gespeichert werden: % set a "b c"; # mit tab b c % puts $a b c % llength $a 2 % puts "\$a enthaelt \"[lindex $a 0]\" und \"[lindex $a 1]\"" $a enthaelt "b" und "c" % set a "a b c" a b c % llength $a 3 % puts $a a b c % puts [lrange $a 1 2] b c Zitieren mit geschweiften Klammern Alles zwischen balancierten geschweiften Klammern wird nicht interpretiert, ausgenommen daß innere geschweifte Klammern gezählt werden, daß die Folge \{ weder gezählt noch verändert wird und daß fortgesetzte Zeilen bereits zusammengefügt werden: % puts {$a \{ \ b $a \{ b Aus dem Inhalt der geschweiften Klammern entsteht eine Liste, die dann oft als Folge von TCL-Kommandos interpretiert wird. % set body { puts $a puts $a % foreach a {1 2 3 $body 1 2 3

28 28 Worte Da jedes Zeichen nur einmal gelesen und ersetzt wird, sind die Argumente (Worte) der Kommandos leicht aus den Zwischenräumen im Quelltext ersichtlich: % set city "New York" New York % set bigcity New York wrong # args: should be "set varname?newvalue?" % set bigcity $city New York Wenn ein Wert eine Liste ist, die einzelne Argumente eines Kommandos werden sollen, kann man mit eval einen weiteren Durchgang durch den Interpreter einleiten: % eval set city "New York" wrong # args: should be "set varname?newvalue?" $ tee a.o b.o c.o < /dev/null $ tclsh % rm [glob *.o] rm: a.o b.o c.o: No such file or directory child process exited abnormally % eval rm [glob *.o] % exit $ ls *.o eval ist fast immer nötig, wenn eine variable Argumentliste mit $args übergeben werden soll oder wenn das Resultat einer glob-expansion einem Kommando übergeben wird. Außerdem kann man eine Art Zeiger auf Zeiger realisieren: % set g h h % set f g g % puts $f g % puts $$f $g % eval puts $$f h

29 29 Kommandos Das erste Wort eines Kommandos muß der Name einer internen oder definierten TCL-Prozedur sein. Für unbekannte Worte wird die Prozedur unknown aufgerufen, die beliebig definiert werden kann. Nach Voreinstellung werden auto-loading und auf der obersten Ebene bei interaktiver Benutzung auto-execute, history und Abkürzungen unterstützt siehe /usr/local/lib/tcl/init.tcl. auto-loading sucht auf den Pfaden in der Liste auto_path nach Dateien mit Namen tclindex, die mit dem Kommando auto_mkindex directory pattern erzeugt oder aktualisiert werden. Prozeduren, die von auto_mkindex in tclindex eingetragen wurden, werden beim ersten Zugriff automatisch gefunden und geladen. auto_execute führt ein UNIX-Kommando für ein unbekanntes TCL-Kommando so aus, als ob exec angegeben worden wäre, allerdings nur interaktiv auf der äußeren Ebene: % date Wed Apr 27 17:15:34 MET DST 1994 % foreach a {1 2 date Wed Apr 27 17:15:42 MET DST 1994 Wed Apr 27 17:15:42 MET DST 1994 % proc d { { date % d invalid command name "date" history ist ein Kommando, das von unknown mit Abkürzungen im Stil der Shells unterstützt wird: history history keep count history nextid history redo?event? history substitute old new?event? zeigt Liste legt Länge fest zeigt nächste Position führt nochmals aus ersetzt und führt nochmals aus!! history redo!event history redo event ^old^new history substitute old new

Klienten und Server mit TCL

Klienten und Server mit TCL Klienten und Server mit TCL Axel-Tobias Schreiner, Universität Osnabrück Im letzten Heft hat Dieter Glauß die Tool Command Language TCL vorgestellt und gezeigt, wie leicht man damit X-Applikationen programmieren

Mehr

Alles Text Sockets à la Plan 9

Alles Text Sockets à la Plan 9 Alles Text Sockets à la Plan 9 Petra Gremeyer, Axel-Tobias Schreiner, Fachbereich Mathematik/Informatik, Universität Osnabrück Plan 9, das neue verteilte Betriebssystem der UNIX-Schöpfer, hat bekanntlich

Mehr

NAT und Firewalls. Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de. Universität Bielefeld Technische Fakultät

NAT und Firewalls. Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de. Universität Bielefeld Technische Fakultät NAT und Firewalls Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de Universität Bielefeld Technische Fakultät Stand der Veranstaltung 13. April 2005 Unix-Umgebung 20. April 2005 Unix-Umgebung 27. April 2005

Mehr

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2014 1 / 25 2 / 25 Pipes Die Bash kennt drei Standard-Dateideskriptoren: Standard In (stdin) Standard-Eingabe,

Mehr

Dienstspezifikation nach RFC 2396 193

Dienstspezifikation nach RFC 2396 193 Dienstspezifikation nach RFC 2396 193 Für die Kombination aus Rechnernamen (oder alternativ einer IP-Adresse) und einer Portnummer gibt es mit RFC 2396 einen Standard: hostport host [ : port ] host hostname

Mehr

Rechnernetze. 6. Übung

Rechnernetze. 6. Übung Hochschule für Technik und Wirtschaft Studiengang Kommunikationsinformatik Prof. Dr. Ing. Damian Weber Rechnernetze 6. Übung Aufgabe 1 (TCP Client) Der ECHO Service eines Hosts wird für die Protokolle

Mehr

Lösung Übungszettel 6

Lösung Übungszettel 6 Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik SS 03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 1 Aufgabe 1: Parallel-Server 1.1 Client #include

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

Technische Praxis der Computersysteme I 3. Vorlesung

Technische Praxis der Computersysteme I 3. Vorlesung Technische Praxis der Computersysteme I 3. Vorlesung Bernhard Lamel Universität Wien, Fakultät für Mathematik WS 2007 Outline 1 Grundlegende Informationen 2 Umgang mit Textdateien 3 Schleifen und Kontrollstrukturen

Mehr

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen Kommunikationsnetze Gliederung 1. Socket-Programmierung unter C 2. Socket-Programmierung unter Java Gliederung Berkeley Sockets (Erste freie TCP/IP-Implementierung in Berkeley UNIX): SOCKET: Erzeugen eines

Mehr

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells.

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. Übung 7 1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. 2.) Charakterisieren Sie kurz das User Datagram Protokoll (UDP) aus der Internetprotokollfamilie

Mehr

IP Adressen & Subnetzmasken

IP Adressen & Subnetzmasken IP Adressen & Subnetzmasken Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de Universität Bielefeld Technische Fakultät Stand der Veranstaltung 13. April 2005 Unix-Umgebung 20. April 2005 Unix-Umgebung 27. April

Mehr

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST 2. Interaktive Web Seiten GET und POST Die Übertragungsmethoden GET und POST sind im http Protokoll definiert: POST: gibt an, dass sich weitere Daten im Körper der übertragenen Nachricht befinden: z.b.

Mehr

Projekt: Web-Proxy. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015

Projekt: Web-Proxy. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

shri Raw Sockets Prof. Dr. Ch. Reich

shri Raw Sockets Prof. Dr. Ch. Reich shri Raw Sockets Prof. Dr. Ch. Reich Szenario: Verschicken einer gespooften Ping-Message IP-Source-Adresse ist Adresse des Opfers Nachrichtenformat: IP-Header (normal, außer IP-Source-Address ist einstellbar)

Mehr

TCP/IP-Protokollfamilie

TCP/IP-Protokollfamilie TCP/IP-Protokollfamilie Internet-Protokolle Mit den Internet-Protokollen kann man via LAN- oder WAN kommunizieren. Die bekanntesten Internet-Protokolle sind das Transmission Control Protokoll (TCP) und

Mehr

Befehlsreferenz. Copyright Stefan Dahler 11. Oktober 2010 Version 3.0. Seite - 1 -

Befehlsreferenz. Copyright Stefan Dahler 11. Oktober 2010 Version 3.0. Seite - 1 - Befehlsreferenz Copyright Stefan Dahler 11. Oktober 2010 Version 3.0 Seite - 1 - 12. Befehlsreferenz ps Optionen Bedeutung -e Listet alle Prozesse -f Komplette Liste -j Gibt Prozessgruppen-ID aus -l Lange

Mehr

Teil 1: Ein einfacher Chat

Teil 1: Ein einfacher Chat Teil 1: Ein einfacher Chat Verteilte Systeme / Chat Der Weg ist das Ziel Im Laufe dieses Projektes werden Sie schrittweise ein Chat-Programm entwickeln. Dabei werden Sie einiges über den Aufbau des Internets

Mehr

Tafelübung zu BS 4. Interprozesskommunikation

Tafelübung zu BS 4. Interprozesskommunikation Tafelübung zu BS 4. Interprozesskommunikation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/

Mehr

182. stdio. 183. stdio. Eingabe. Ausgabe. Typisch für Zeileneingabe und Analyse: #include

182. stdio. 183. stdio. Eingabe. Ausgabe. Typisch für Zeileneingabe und Analyse: #include <stdio.h> 182. stdio Eingabe int getchar (), getc (FILE * fp), fgetc (FILE * fp); char * gets (char * buf), * fgets (char * buf, int len, FILE * fp); int scanf (const char * fmt,...); int fscanf (FILE * fp, const

Mehr

Linux - a bit advanced

Linux - a bit advanced Linux - a bit advanced Überblick Rechteverwaltung Dateisystem Shell-Programmierung Remote login Paketsystem Alternativen-System Rechte Drei Benutzerklassen Owner/User Group Others Drei Rechte Ausführen

Mehr

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 1 Telnet und FTP

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 1 Telnet und FTP VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer Kommunikation I (Internet) Übung 1 Telnet und FTP SS 2003 Inhaltsverzeichnis 2. Übungen mit Telnet und FTP...1 2.1. Testen der Verbindung mit ping...1 2.2. Arbeiten

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung String Operationen i = 25 text1 = "Ich bin " text2 = " Jahre alt" print (text1 + str(i) + text2) print ("ich bin", i, "Jahre alt") print ("ich bin %s Jahre alt" % i) >>> Ich bin 25

Mehr

Computeranwendung in der Chemie Informatik für Chemiker(innen) 5. Internet

Computeranwendung in der Chemie Informatik für Chemiker(innen) 5. Internet Computeranwendung in der Chemie Informatik für Chemiker(innen) 5. Internet Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL5 Folie 1 Dr. Jens Döbler Internet Grundlagen Zusammenschluß

Mehr

Android VPN. Am Beispiel eines Netzwerktunnels für das Domain Name System (DNS) 1 Andiodine - Android DNS-VPN

Android VPN. Am Beispiel eines Netzwerktunnels für das Domain Name System (DNS) 1 Andiodine - Android DNS-VPN Android VPN Am Beispiel eines Netzwerktunnels für das Domain Name System () 1 Inhalt VPN Framework in Android Übersicht zu Iodine Funktionsweise Demonstration 2 VPN und Android Verfügbar seit Android 4.0

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1)

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) 1 FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) In dieser Kurseinheit geht es um verteilte Anwendungen, bei denen wir sowohl ein Client- als auch ein

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

Client/Server-Systeme

Client/Server-Systeme Frühjahrsemester 2011 CS104 Programmieren II / CS108 Programmier-Projekt Java-Projekt Kapitel 3: /Server-Architekturen H. Schuldt /Server-Systeme Ein zweischichtiges /Server-System ist die einfachste Variante

Mehr

Computer and Communication Systems (Lehrstuhl für Technische Informatik) Socket-Programmierung

Computer and Communication Systems (Lehrstuhl für Technische Informatik) Socket-Programmierung Computer and Communication Systems (Lehrstuhl für Technische Informatik) Socket-Programmierung [RN] Sommer 2012 Socket - Programmierung 1 Überblick Allgemeine Grundlagen für die Socket-Programmierung Elementare

Mehr

Übung 4: Schreiben eines Shell-Skripts

Übung 4: Schreiben eines Shell-Skripts Aufgabenteil 1 Ziel der Übung Übung 4: Schreiben eines Shell-Skripts Anhand eines einfachen Linux-Skripts sollen die Grundlagen der Shell-Programmierung vermittelt werden. Das für die Bash-Shell zu erstellende

Mehr

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr. ls [optionen] [namen]: ls zeigt den Inhalt von Verzeichnissen. Sind keine namen angegeben, werden die Dateien im aktuellen Verzeichnis aufgelistet. Sind eine oder mehrere namen angegeben, werden entweder

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

Mehr

1 Network File System ( NFS )

1 Network File System ( NFS ) Network File System 1 Network File System ( NFS ) 1.1 Motivation für die Entwicklung Mit Hilfe von ftp können komplette reguläre Dateien von einem Rechner über das Netzwerk zu einem anderen Rechner transferiert

Mehr

UDP-, MTU- und IP- Fragmentierung

UDP-, MTU- und IP- Fragmentierung UDP-, MTU- und IP- Fragmentierung Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de Universität Bielefeld Technische Fakultät Stand der Veranstaltung 13. April 2005 Unix-Umgebung 20. April 2005 Unix-Umgebung

Mehr

Stefan Dahler. 1. Konfiguration der Stateful Inspection Firewall. 1.1 Einleitung

Stefan Dahler. 1. Konfiguration der Stateful Inspection Firewall. 1.1 Einleitung 1. Konfiguration der Stateful Inspection Firewall 1.1 Einleitung Im Folgenden wird die Konfiguration der Stateful Inspection Firewall beschrieben. Es werden Richtlinien erstellt, die nur den Internet Verkehr

Mehr

IT-Sicherheit WS 07/08. Aufgabenblatt 9

IT-Sicherheit WS 07/08. Aufgabenblatt 9 IT-Sicherheit WS 07/08 Aufgabenblatt 9 User Mode Linux (UML) http://user-mode-linux.sourceforge.net/ Physische Maschine Benutzerprozesse Virtuelle Maschine Virtuelle Prozesse Linux-Kern-Prozess Virtuelle

Mehr

Shell-Programmierung

Shell-Programmierung Shell-Programmierung Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009 Shell-Programmierung 1/34 2009-04-27 Inhalt Einleitung

Mehr

Multiuser Client/Server Systeme

Multiuser Client/Server Systeme Multiuser /Server Systeme Christoph Nießner Seminar: 3D im Web Universität Paderborn Wintersemester 02/03 Übersicht Was sind /Server Systeme Wie sehen Architekturen aus Verteilung der Anwendung Protokolle

Mehr

Adressauflösung. IP Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18

Adressauflösung. IP Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18 Adressauflösung IP Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18 IP Adresse Physikalische Adresse 128.96.34.15??? 128.96.34.16 85:48:A4:28:AA:18 128.96.34.15

Mehr

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Ein- und Ausgabe Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Komplexe E/A-Operationen werden erst diskutiert, nachdem das Klassenkonzept erarbeitet

Mehr

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit

Mehr

Organisatorisches. Übungsleiter: Karsten Otto (otto@inf.fu-berlin.de) Homepage: http://www.inf.fu-berlin.de/lehre/ss06/netzsicherheit Aufgaben

Organisatorisches. Übungsleiter: Karsten Otto (otto@inf.fu-berlin.de) Homepage: http://www.inf.fu-berlin.de/lehre/ss06/netzsicherheit Aufgaben Organisatorisches Übungsleiter: Karsten Otto (otto@inf.fu-berlin.de) Homepage: http://www.inf.fu-berlin.de/lehre/ss06/netzsicherheit Aufgaben Mittwochs im Netz Vorbesprechung Freitag/Montag in der Übung

Mehr

IP-Adressen und Ports

IP-Adressen und Ports IP-Adressen und Ports Eine Einführung Tina Umlandt Universität Hamburg 2. August 2011 Überblick Präsentationsablauf 1 IP = Internetwork protocol Schematische Darstellung über die Layer IP-Datenpaket (IPv4)

Mehr

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D. 1 Copyright 1996-1997 by Axel T. Schreiner. All Rights Reserved. 7 Datenbankzugriff Prinzip Dieser Abschnitt beschäftigt sich mit dem Paket java.sql, das eine SQL-Schnittstelle für Java verkapselt. Java-Programme

Mehr

AK-NORD EDV-Vertriebs. GmbH Stormstrasse 8 25524 Itzehoe Gemany

AK-NORD EDV-Vertriebs. GmbH Stormstrasse 8 25524 Itzehoe Gemany AK-NORD EDV-Vertriebs. GmbH Stormstrasse 8 25524 Itzehoe Gemany Tel: +49 (0) 4821/ 8040350 Fax: +49 (0) 4821/ 4083024 Internet www.ak-nord.de E-Mail: technik@ak-nord.de Handbuch AT-Befehle der Modem- Emulation

Mehr

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte

Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Musterlösung 1. Aufgabe (5 Punkte) Im folgenden Programmcode sind einige Fehler enthalten. Finden und markieren Sie mindestens

Mehr

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung 2015-02-25 1 of 6 Application Note Anbindung von Kunden-Software an SpiderControl Web Visualisierung Version ApplicationNote_AnbindungFremdsoftware /Version Seite 1 / 6 Version Datum Kommentar Autor 0.1

Mehr

7 TCP/IP-Dienste konfigurieren

7 TCP/IP-Dienste konfigurieren 7 TCP/IP-Dienste konfigurieren In diesem Kapitel lernen Sie die Begriffe Ports,Sockets und Connections kennen (LPI 1: 109.1). den Zusammenhang der Ports von TCP/IP-Diensten mit der Datei /etc/services

Mehr

Grundkurs Routing im Internet mit Übungen

Grundkurs Routing im Internet mit Übungen Grundkurs Routing im Internet mit Übungen Falko Dressler, Ursula Hilgers {Dressler,Hilgers}@rrze.uni-erlangen.de Regionales Rechenzentrum der FAU 1 Tag 4 Router & Firewalls IP-Verbindungen Aufbau von IP

Mehr

Anhang A - Weitere Bibliotheken. Die Bibliothek Mail_02.lib ermöglicht das Versenden von Emails mit dem Ethernet-Controller 750-842.

Anhang A - Weitere Bibliotheken. Die Bibliothek Mail_02.lib ermöglicht das Versenden von Emails mit dem Ethernet-Controller 750-842. Anhang A - Weitere Bibliotheken WAGO-I/O-PRO 32 Bibliothek Mail_02.lib Die Bibliothek Mail_02.lib ermöglicht das Versenden von Emails mit dem Ethernet-Controller 750-842. Inhalt Mail_02.lib 3 MAIL_SmtpClient...

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Linux Tutorium. 12. Shellprogrammierung. Version vom 02.07.2008 13:38:56

Linux Tutorium. 12. Shellprogrammierung. Version vom 02.07.2008 13:38:56 Linux Tutorium 12. Shellprogrammierung Version vom 02.07.2008 13:38:56 im Grunde ist ein Shell-Skript nichts anderes als eine Textdatei, welche Befehlsfolgen enthält Shell-Skripte werden im Wesentlichen

Mehr

Client-Server mit Socket und API von Berkeley

Client-Server mit Socket und API von Berkeley Client-Server mit Socket und API von Berkeley L A TEX Projektbereich Deutsche Sprache Klasse 3F Schuljahr 2015/2016 Copyleft 3F Inhaltsverzeichnis 1 NETZWERKPROTOKOLLE 3 1.1 TCP/IP..................................................

Mehr

Anwendungsprotokolle: HTTP, POP, SMTP

Anwendungsprotokolle: HTTP, POP, SMTP Anwendungsprotokolle: HTTP, POP, SMTP TCP? UDP? Socket? eingesetzt, um Webseiten zu übertragen Zustandslos Nutzt TCP Client schickt Anfrage ( HTTP-Request ) an Server, Server schickt daraufhin Antwort

Mehr

Firewalling. Michael Mayer IAV0608 Seite 1 von 6

Firewalling. Michael Mayer IAV0608 Seite 1 von 6 Firewalling Ausgangssituation: Das Netzwerk besteht aus einem Gateway, mehreren Subservern und dessen Subnetzwerken. Aufgabe ist es eine Firewall auf dem Subserver zu installieren, welche das Netzwerk

Mehr

Switching. Übung 2 System Management. 2.1 Szenario

Switching. Übung 2 System Management. 2.1 Szenario Übung 2 System Management 2.1 Szenario In der folgenden Übung werden Sie Ihre Konfiguration sichern, löschen und wieder herstellen. Den Switch werden Sie auf die neueste Firmware updaten und die Funktion

Mehr

TCP/UDP. Transport Layer

TCP/UDP. Transport Layer TCP/UDP Transport Layer Lernziele 1. Wozu dient die Transportschicht? 2. Was passiert in der Transportschicht? 3. Was sind die wichtigsten Protkolle der Transportschicht? 4. Wofür wird TCP eingesetzt?

Mehr

Anycast und Anycast DNS

Anycast und Anycast DNS Anycast und Anycast DNS Grundlagen und Anwendung an der Uni Köln Grundlagen IP Anycast: eine IP mit mehreren Zielen Router kennen verschiedene Wege zum Ziel, wählen den kürzesten/ billigsten Grundsätzlich

Mehr

Internet Routing am 14. 11. 2006 mit Lösungen

Internet Routing am 14. 11. 2006 mit Lösungen Wissenstandsprüfung zur Vorlesung Internet Routing am 14. 11. 2006 mit Lösungen Beachten Sie bitte folgende Hinweise! Dieser Test ist freiwillig und geht in keiner Weise in die Prüfungsnote ein!!! Dieser

Mehr

Übung: Entwickeln eines Shell-Skripts

Übung: Entwickeln eines Shell-Skripts Aufgabenteil 1 Ziel der Übung Übung: Entwickeln eines Shell-Skripts Anhand eines einfachen Linux-Skripts sollen die Grundlagen der Shell-Programmierung vermittelt werden. Das für die Bash-Shell zu erstellende

Mehr

Wie benutzt der NetWorker Remote Procedure Calls (RPC)?

Wie benutzt der NetWorker Remote Procedure Calls (RPC)? NetWorker - Allgemein Tip 298, Seite 1/7 Wie benutzt der NetWorker Remote Procedure Calls (RPC)? Der NetWorker - wie jede andere Client/Server (Backup) Software - benutzt immer diese zwei grundlegenden

Mehr

Michael Golm, Universität Erlangen-Nürnberg, IMMD 4, 1999/2000 1999-12-20 14.51 / Tafelübung 7. Netzwerkkommunikation und Byteorder

Michael Golm, Universität Erlangen-Nürnberg, IMMD 4, 1999/2000 1999-12-20 14.51 / Tafelübung 7. Netzwerkkommunikation und Byteorder 7. Tafelübung Lösung der jsh-aufgabe Erläuterung der rshd-aufgabe Sockets 83 Netzwerkkommunikation und Byteorder Wiederholung: Byteorder big endian little endian 0 1 2 3 11 aa bb cc cc bb aa 11 0x11aabbcc

Mehr

Linux 08. Linux WS 04/05 by www.realtec.de - 1 - 1. DNS - named: in /etc/named.conf. DNS Top-Level-DNS

Linux 08. Linux WS 04/05 by www.realtec.de - 1 - 1. DNS - named: in /etc/named.conf. DNS Top-Level-DNS 1. DNS - named: in /etc/named.conf DNS Top-Level-DNS O o => keine Konfiguration: Anfragen werden an Top-Level-DNS gegeben und von dort verteilt (z.b. Europa(--> Belgien, Luxemburg, Deutschland,...), USA,...)

Mehr

Rechnernetze Übung 12

Rechnernetze Übung 12 Rechnernetze Übung 12 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juli 2011 Sie kennen sicherlich sogenannte Web-Mailer, also WWW-Oberflächen über die Sie Emails lesen und vielleicht

Mehr

Grundlagen der Rechnernetze. Internetworking

Grundlagen der Rechnernetze. Internetworking Grundlagen der Rechnernetze Internetworking Übersicht Grundlegende Konzepte Internet Routing Limitierter Adressbereich SS 2012 Grundlagen der Rechnernetze Internetworking 2 Grundlegende Konzepte SS 2012

Mehr

Automail für fli4l. Kurze Beschreibung der Umgebung. Das Problem. LinuxFocus article number 308 http://linuxfocus.org. by Stefan Blechschmidt

Automail für fli4l. Kurze Beschreibung der Umgebung. Das Problem. LinuxFocus article number 308 http://linuxfocus.org. by Stefan Blechschmidt LinuxFocus article number 308 http://linuxfocus.org Automail für fli4l by Stefan Blechschmidt About the author: Abstract: Als gelernter Elektriker hat man mich 1990 vor einen CAD

Mehr

Multimedia im Netz Wintersemester 2011/12

Multimedia im Netz Wintersemester 2011/12 Multimedia im Netz Wintersemester 2011/12 Übung 01 Betreuer: Verantwortlicher Professor: Sebastian Löhmann Prof. Dr. Heinrich Hussmann Organisatorisches 26.10.2011 MMN Übung 01 2 Inhalte der Übungen Vertiefung

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

Übersicht. Generierung von IPv6-Paketen mit Scapy. Scapy GUI - Kurzvorstellung. Szameitpreiks - Beuth Hochschule für Technik Berlin

Übersicht. Generierung von IPv6-Paketen mit Scapy. Scapy GUI - Kurzvorstellung. Szameitpreiks - Beuth Hochschule für Technik Berlin Übersicht Generierung von IPv6-Paketen mit Scapy Scapy GUI - Kurzvorstellung Szameitpreiks - Beuth Hochschule für Technik Berlin 2 Scapy-GUI for IPv6 Generierung von IPv6- Paketen mit Scapy Szameitpreiks

Mehr

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam Aktuelle Fileposition ermitteln long pos; pos=ftell(fp); //aktuelle Bytenummer Filelaenge in Bytes fseek(fp,0,seek_end); pos=ftell(fp); Fileendeerkennung int rc; rc = feof (fp) //!= 0 bei Fileende // ==

Mehr

Vorwort... 5. Vorwort zur deutschen Übersetzung... 11

Vorwort... 5. Vorwort zur deutschen Übersetzung... 11 Vorwort.................................................... 5 Vorwort zur deutschen Übersetzung........................... 11 1 Einführung................................................ 23 1.1 Einführung................................................

Mehr

MySQL Queries on "Nmap Results"

MySQL Queries on Nmap Results MySQL Queries on "Nmap Results" SQL Abfragen auf Nmap Ergebnisse Ivan Bütler 31. August 2009 Wer den Portscanner "NMAP" häufig benutzt weiss, dass die Auswertung von grossen Scans mit vielen C- oder sogar

Mehr

Linux im Windows-Netzwerk Franzis Verlag, Poing 2 2001 ISBN 3-7723-6065-3 (DM 89,95) www.linuxbu.ch

Linux im Windows-Netzwerk Franzis Verlag, Poing 2 2001 ISBN 3-7723-6065-3 (DM 89,95) www.linuxbu.ch 7HLO, X www.samba.org 5HVVRXUFHQ X Eckstein, R.; Collier-Brown, D.: Samba. Ein Datei- und Druckserver für heterogene Netzwerke O'Reilly-Verlag, Köln 2000 ISBN 3-89721-16-0 (DM 74,-) X Burre, B.; Debacher

Mehr

VNUML Projektpraktikum

VNUML Projektpraktikum VNUML Projektpraktikum Michael Monreal, Tomasz Oliwa 14. Juni 2006 Abstract Entstanden im Projektpraktikum Simulationen mit User Mode Linux, der vnuml Multiinstaller und VOToN, das VNUML-Old-To-New Programm

Mehr

Grundlagen der Informatik - 6. Praktikum

Grundlagen der Informatik - 6. Praktikum Grundlagen der Informatik - 6. Praktikum In diesem Praktikum soll es neben der Anwendung von Funktionsdefinitionen auch um einfache Prinzipien der verteilten Quelltext-Strukturierung gehen. Diese spielt

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Skripte. Beispiel. http://www.icp.uni-stuttgart.de. M. Fyta Computergrundlagen 73/93

Skripte. Beispiel. http://www.icp.uni-stuttgart.de. M. Fyta Computergrundlagen 73/93 Skripte Wie kann ich mir komplexe Befehle merken? Gar nicht aber der Computer kann es für mich! Einfach die Befehle in eine Textdatei schreiben und ausführbar machen #! (Shebang) in der ersten Zeile bestimmt

Mehr

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets.

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Timer Sockets SMTP-Client 2 / 26 Timer Mit einem Timer können bestimmte Aktionen periodisch wiederkehrend durchgeführt

Mehr

Ausarbeitung des Interpreter Referats

Ausarbeitung des Interpreter Referats Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache

Mehr

LINUX Gesamtmitschrift

LINUX Gesamtmitschrift LINUX Gesamtmitschrift Martin Rabensteiner, 22.11.2015 Filesystem unter Linux - Keine Laufwerksbuchstaben - ~ Home-Verzeichnis User - Versteckte Dateien.filename Pfade 1. Absoluter Pfad eindeutiger Weg

Mehr

Einführung in die Angewandte Bioinformatik

Einführung in die Angewandte Bioinformatik Einführung in die Angewandte Bioinformatik Kurzeinführung in Unix und verwandte Betriebssysteme Webseite zur Vorlesung http://bioinfo.wikidot.com/ Sprechstunde Mo 16-17 in OH14, R214 Sven.Rahmann -at-

Mehr

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei Dateiverwaltung Dateiverwaltung 2002 Prof. Dr. Rainer Manthey Informatik II 1 Dateien weitere zentrale Aufgabe des Betriebssystems: "Verbergen" der Details der Struktur von und der Zugriffe auf Sekundärspeicher-Medien

Mehr

Konfigurationsanleitung IPsec mit ISDN Backup und statischen IP-Adressen Funkwerk / Bintec

Konfigurationsanleitung IPsec mit ISDN Backup und statischen IP-Adressen Funkwerk / Bintec Konfigurationsanleitung IPsec mit ISDN Backup und statischen IP-Adressen Funkwerk / Bintec Copyright 5. September 2008 Neo-One Stefan Dahler Version 1.0 1. IPsec Verbindung mit ISDN Backup und statischen

Mehr

KN 20.04.2015. Das Internet

KN 20.04.2015. Das Internet Das Internet Internet = Weltweiter Verbund von Rechnernetzen Das " Netz der Netze " Prinzipien des Internet: Jeder Rechner kann Information bereitstellen. Client / Server Architektur: Server bietet Dienste

Mehr

TCP-Sockets in Java und C. Verteilte Systeme Hochschule Regensburg Vorlesung 4, 25.04.2012 Universitätsstraße 31, 93053 Regensburg

TCP-Sockets in Java und C. Verteilte Systeme Hochschule Regensburg Vorlesung 4, 25.04.2012 Universitätsstraße 31, 93053 Regensburg TCP-Sockets in Java und C Hochschule Regensburg Vorlesung 4, 25.04.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Ziel: Threads sollen unabhängig von ihrer Position kommunizieren

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere

Mehr

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile

Mehr

Freelance 2000. DeltaPLC-Tool. Version 4 / Version 5

Freelance 2000. DeltaPLC-Tool. Version 4 / Version 5 Freelance 2000 DeltaPLC-Tool Version 4 / Version 5 Inhaltsverzeichnis 1 Allgemeine Beschreibung... 5 2 Aufruf des DeltaPLC-Tool... 5 3 Vergleich der PLC-Dateien... 6 4 Konfigurationsänderungen... 7 5

Mehr

Referat von Sonja Trotter Klasse: E2IT1 Datum Jan. 2003. Subnetting

Referat von Sonja Trotter Klasse: E2IT1 Datum Jan. 2003. Subnetting Referat von Sonja Trotter Klasse: E2IT1 Datum Jan. 2003 Subnetting Einleitung Thema dieser Ausarbeitung ist Subnetting Ganz zu Beginn werden die zum Verständnis der Ausführung notwendigen Fachbegriffe

Mehr

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze Vorlesung 16 Netzwerkprogrammierung 1 Netzwerkprogrammierung Mit Java-Programmen ist es möglich, Verbindungen über Netze aufzubauen Die Basisfunktionalität zur Netzwerkprogrammierung stellt das Paket java.net

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

Internetprotokoll TCP / IP

Internetprotokoll TCP / IP Internetprotokoll TCP / IP Inhaltsverzeichnis TCP / IP - ALLGEMEIN... 2 TRANSPORTPROTOKOLLE IM VERGLEICH... 2 TCP / IP EIGENSCHAFTEN... 2 DARPA MODELL... 3 DIE AUFGABEN DER EINZELNEN DIENSTE / PROTOKOLLE...

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 09:30 Uhr (90 min) Aufgabenblätter 14 Seiten (einschl. Deckblatt) erreichbare Punktzahl 54 zugelassene

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

Mehr

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1 Fachhochschule Kaiserslautern Fachbereiche Elektrotechnik/Informationstechnik und Maschinenbau Labor Datenbanken Versuch 1 : Die Grundlagen von MySQL ------------------------------------------------------------------------------------------------------------

Mehr