Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Concurrent Clients Alexander Sczyrba

Slides:



Advertisements
Ähnliche Präsentationen
Hochschule Fulda – FB ET Sommersemester 2010
Advertisements

Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Aufgabe: Wie stellt man eine for-Schleife durch eine while-Schleife dar ?
für das Schulnetz der BS Roth
Vs Klassifizierung von Kommunikationsdiensten synonym:Nachrichtensystem/dienst(message service) Kommunikationssystem/dienst(communication service)
Allgemeine Technologien II
Die Firewall Was versteht man unter dem Begriff „Firewall“?
Threads Richard Göbel.
FH-Hof Sockets in Java Richard Göbel. FH-Hof Kommunikation über das Internet - Grundlagen Ein Rechner wird im Internet über die so genannte IP- Adresse.
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
Vorl. 6: Single- und Multitasking Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Aufgabe Hardwarenahe Programmierung Bluetooth/Lan-Gateway Frank Reichenbach LAN/WLAN Bluetooth Kommunikation zwischen zwei Clients über Client 1 verbindet.
Die Skriptsprache Perl (5) Wolfgang Friebel DESY Zeuthen.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,
DFÜ => Daten-Fern-Übertragung
Referent: Kiron Mirdha Betreuer: Rene Hilden Juli 2012
Socket-Programmierung
Test Netzwerke 1 Grundlagen.
Patrick Schmerlaib. Scriptsprachen: sind Programmiersprachen Verzichten auf Sprachelemente Vorteile: schnelle Erstellung kleiner Programme Flexible Sprache.
Netzwerkprogrammierung
You need to use your mouse to see this presentation.
Internet und SMS Internet und SMS Daniel Rickenbacher Jeremy Deuel.
Netzwerke.
Historian CONNECT ALARM
Informatik II Grundlagen der Programmierung Programmieren in C Benutzerinteraktion / Ein- und Ausgabe Hochschule Fulda – FB ET Sommersemester
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
1 Projekt1: Prozesse unter Unix Aufgabenstellung 2: Interprozessnachrichtentausch.
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
1.3 Verklemmungen Synchronisation löst Probleme – ist aber auch Gefahrenquelle: Prozeß wartet an Synchronisationspunkt – ist gesichert, daß er irgendwann.
Hans Laubisch Expert Student Partner Microsoft Student Partners DE e Windows Azure Windows Azure VPN (mit Windows Server)
TRUE und FALSE in C Der Wert 0 steht für FALSE Jeder von 0 verschiedene Wert steht für TRUE FALSE wird als 0 dargestellt TRUE wird als 1 dargestellt.
IS: Datenbanken, © Till Hänisch 2000 Windows Netzwerke TCP/IP oder was ?
Strukturen (Eigenschaften) Strukturen dienen zur Zusammenfassung mehrerer Komponenten verschiedener Typen zu einer Einheit, die dann mit gemeinsamen Namen.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Threads Alexander Sczyrba Jan Krüger.
Aufbau eines IPv6-Netzwerkes Das folgende Netzwerk wird in dieser Einheit nach und nach aufgebaut.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Vorbesprechung, Administrativa, Einführung Alexander Sczyrba
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Kommunikation von Prozessen Signale und Pipes Alexander Sczyrba
Vs3 1 3 Netzdienste im Internet. vs3 2 Netzdienste = über Ports ansprechbare Dienste, die hauptsächlich (aber nicht nur) für die Fernnutzung gedacht sind.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Programmieren mit sockets Alexander Sczyrba
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Netzwerke Alexander Sczyrba Jan Krüger.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Prozesse Alexander Sczyrba Jan Krüger.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung I/O Multiplexing Alexander Sczyrba
Netzwerk - Programmierung
Tobias Sammet 8DY1 Programmieren Tobias Sammet 8DY2 Programmierung ● = das Schreiben eines Computerprogramms ● Dient zur Lösung eines.
Erfahrungen mit dem neuen Primo-UI
Der Chatclient.
Netzwerk - Programmierung
Port-Forwarding Der PC möchte vom Internet aus auf den http-Server zugreifen. Er sieht nur die IP-Adresse und den Port des Routers. http-Server PC Router.
Klausur „Diskrete Mathematik II“
Web-Interface for Multi-FPGA Board Pamette
Camil Bartkowiak Serhat Cinar Leonardo Di Lella Jan Finsel
Schema allgemeines postsync Skript
Netzwerk - Programmierung
Netzwerk - Programmierung
Netzwerk - Programmierung
Netzwerk - Programmierung
VPN (Virtual private Network)
Netzwerk - Programmierung
Netzwerk - Programmierung
Aufbau eines IPv6-Netzwerkes
Netzwerk - Programmierung
Betriebssysteme LB BB SS2017
Routing … … die Suche nach dem Weg..
Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Tutorstunde 10.
TCP/IP Transmission Control Protocol/Internet Protocol
 Präsentation transkript:

Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Concurrent Clients Alexander Sczyrba Jan Krüger

Center for Biotechnology Bielefeld Bioinformatics Service Übersicht ● Server-Implementierung mit IO::Socket ● TCP Echo Client ● Concurrent Clients

Center for Biotechnology Bielefeld Bioinformatics Service Aufgabe Schreibe mit Hilfe von IO::Socket einen Client, der zeilenweise Eingaben an den Server schickt und Ausgaben vom Server zeilenweise ausgibt Wie verhält sich Dein Client bei einem echo-Server (vgl. Material zu Programmieren mit Sockets)? Wie verhält er sich bei einem whois-Server (bspw. ’whois.arin.net’, Port 43)? Vergleiche dazu die Ausgabe mit z.B. whois -h whois.arin.net google.com. Wo liegt das Problem?

Center for Biotechnology Bielefeld Bioinformatics Service Problematischer Client use IO::Socket; my $host = shift || ’localhost’; my $port = shift || ’echo’; my $socket = IO::Socket::INET->new("$host:$port") or die "Can’t connect to port $port at $host: $!\n"; while (defined(my $msg_out = )) { print $socket $msg_out; my $msg_in = ; print $msg_in; } $socket->close;

Center for Biotechnology Bielefeld Bioinformatics Service Deadlocks Auch folgender Versuch schlägt fehl: while ($from_server = ){ print $from_server; … } Server und Client warten gleichzeitig auf Eingaben und Erzeugen so einen Deadlock.

Center for Biotechnology Bielefeld Bioinformatics Service Concurrent Clients ● Lösung : Entkoppeln der lesenden und schreibenden Prozesse durch fork() ● Parent kopiert die Daten vom Client zum Server ● Child liest Daten von Server ● Problem: korrektes Beenden der Prozesse

Center for Biotechnology Bielefeld Bioinformatics Service Verbindungsabbau forked Client Zeit Serv er Pare nt Child Serv er Pare nt Child Serv er Pare nt Child Serv er Pare nt Child sleep( ) CHL D exit() Serv er Pare nt sleep( ) Pare nt sleep( )

Center for Biotechnology Bielefeld Bioinformatics Service Aufgabe Schreibe einen Client, der folgendermassen aufgebaut ist: ● Socket erzeugen ● fork() ● Parent kopiert von STDIN zum Socket (user2host()) ● Child kopiert vom Socket nach STDOUT (host2user()) ● Parent reagiert auf Signal CHLD und beendet sich ● Parent initiiert shutdown(1), wenn User-Eingabe beendet ● Child beendet sich bei EOF vom Server