Network Communication. Dr. Jürgen Eckerle WS 06/07

Größe: px
Ab Seite anzeigen:

Download "Network Communication. Dr. Jürgen Eckerle WS 06/07"

Transkript

1 Network Communication Dr. Jürgen Eckerle WS 06/07 1

2 Thread-Programmierung ist wichtig um Nebenläufigkeit bei der Netzwerkprogrammierung zu realisieren Typisches Muster beim Server: Server-Handler. Der Client-Request wird an einen Handler-Thread übergeben, um so rasch wie möglich für weitere Clients zur Verfügung zu stehen. Typisches Muster beim Client: Client-Caller. Der blockierende Server-Aufruf wird an einen Caller-Thread delegiert, um weitere Tätigkeiten ausführen zu können. 2

3 public class Server extends Thread { public Server() { this.start(); public void run() { while (true) { System.out.println("waiting for new task"); try { System.in.read(); catch (IOException e) { e.printstacktrace(); Handler handler = new Handler(); System.out.println("New Handler started"); try { Thread.sleep(1); catch (InterruptedException exc) { exc.printstacktrace(); public static void main(string[] args) { new Server(); 3

4 public class Handler extends Thread { public Handler() { this.start(); public void run() { System.out.println("Doing some work..."); // Hier könnte eine sinnvolle Aufgaben gelöst werden try { Thread.sleep(1000); catch (InterruptedException exc) { exc.printstacktrace(); System.out.println("... done"); 4

5 public class Client { public Client() { Caller caller = new Caller(null); while(caller.returned()==false) { System.out.println("Do some other work..."); try { Thread.sleep(1000); catch (InterruptedException e) { e.printstacktrace(); System.out.println("Continue with result"); Caller caller2 = new Caller(this); System.out.println("Do lots of other work"); public void callback() { System.out.println("Received Result"); public static void main(string[] args) { new Client(); 5

6 public class Caller extends Thread { Client client; private boolean returned = false; public Caller (Client cl) { client = cl; this.start(); public void run() { // Hier könnte ein entfernter Aufruf stehen System.out.println("Press button"); try { System.in.read(); catch (IOException e) { e.printstacktrace(); returned = true; if (client!= null) { client.callback(); public boolean returned() { boolean result = returned; returned = false; try { Thread.sleep(10); catch (InterruptedException e) { e.printstacktrace(); return result; 6

7 TCP/IP verbindungsorientiert (feste Verbindung für die Dauer einer Sitzung) zuverlässig, d.h. gesichert (bei Nachrichtenverlust wird die Nachricht nochmals versandt) und geordnet UDP/IP verbindungslos (Datagramme) unzuverlässig, d.h. Nachrichten können verloren gehen bzw. ungeordnet oder dupliziert eintreffen Multicast- und Broadcast-Nachrichten möglich (IP- Header Typ D) 7

8 Applikationen bzw. Prozesse, die übers Netz miteinander kommunizieren, werden durch ein Paar (IP-Adresse (32 Bit), Portnummer (16 Bit)) adressiert. Portnummern werden vorab fest oder dynamisch während des Verbindungsaufbaus vergeben. Socket realisiert einen Endpunkt einer Kommunikationsverbindung. Aus Sicht des Programmierers stellt dieser einen Mechanismus zur Übertragung von Daten, d.h. entsprechende Kommunikationsprimitive, zur Verfügung. Sockets werden durch die Klassen ServerSocket und Socket des Pakets java.net realisiert (auf der Basis einer TCP/IP-Verbindung). 8

9 Server: Der Aufbau einer Socket-Kommunikation ist asymmetrisch. Erzeuge ein Objekt vom Typ ServerSocket auf einem Server. Die Portnummer wird hierbei als Argument übergeben. Mit dem accept()-aufruf (blockierend) ist der Server bereit für einen vom Client initialisierten Verbindungsaufbau (passiver Socket) Kommt eine Verbindung mit einem Client zustande, so liefert die accept()-methode einen Socket zurück, über den die Kommunikation abgewickelt werden kann. 9

10 // Time Server public class TimeServer { Socket-Kommunikation public static void main (String args[]) throws IOException { int port = 1234; ServerSocket server = new ServerSocket(port); while (true) { System.out.println("Waiting for client..."); Socket client = server.accept(); System.out.println("Client from "+client.getinetaddress()+" connected."); OutputStream out = client.getoutputstream(); Date date = new Date(); byte b[] = date.tostring().getbytes(); out.write(b); 10

11 Client: Mit der Erzeugung eines Objekts vom Typ Socket wird eine Verbindung initiiert, sofern unter der angegebenen Netzadresse ein Server bereit ist (aktiver Socket). Dieser Konstruktoraufruf liefert einen Socket zurück, über den die Kommunikation abgewickelt werden kann. 11

12 // TimeClient public class TimeClient { public static void main (String args[]) throws IOException { Socket server = new Socket("localhost",1234); System.out.println("Connected to "+server.getinetaddress()); InputStream in = server.getinputstream(); byte b[] = new byte[100]; int num = in.read(b); String date = new String(b); System.out.println("Server said: "+date); 12

13 Streams: Das Versenden und Empfangen von Daten ist streambasiert. Streams sind eine Abstraktion für beliebige Datenströme. Für die Eingabe bzw. für den Empfang von Daten steht ein InputStream und für die Ausgabe bzw. für das Versenden ein OutputStream (java.io) zur Verfügung. Bei Sockets werden Objekte der Subklasse FilterInputStream bzw. FilterOutputStream geliefert, die an sich keine weitere Funktionalität bereitstellen. Glücklicherweise lassen sich Streams wie Filter hintereinander schalten und miteinander kombinieren. So kann durch Kaskadierung die gewünschte Funktionalität erreicht werden. 13

14 // TimeClient mit Filtern public class TimeClient { public static void main (String args[]) throws IOException { Socket server = new Socket("localhost",1234); System.out.println("Connected to "+server.getinetaddress()); DataInputStream in = new DataInputStream( new BufferedInputStream(server.getInputStream())); System.out.println("Server said: "+ in.readutf()); 14

15 //ServerSocket mit Filtern public class TimeServer { public static void main (String args[]) throws IOException { int port = 1234; ServerSocket server = new ServerSocket(port); while (true) { System.out.println("Waiting for client..."); Socket client = server.accept(); System.out.println("Client from "+client.getinetaddress()+" connected."); DataOutputStream out = new DataOutputStream( new BufferedOutputStream( client.getoutputstream())); Date date = new Date(); System.out.println(date.toString()); out.writeutf(date.tostring()); out.flush(); 15

16 Multicast ausschliesslich mit Nachrichtentyp D an die Internetadresse gebunden, wobei für die Übertragung von Multicast-Routinginformationen reserviert sind. Anwendungen sind Audio- und Videodaten, ein möglicher Nachrichtenverlust ist nicht gravierend bzw. kann bei Echtzeitübertragung nicht mehr ersetzt werden. Wenn echtes Multicasting vom Netz unterstützt wird, ist die Übertragung an viele Empfänger effizienter als über eine Punkt-zu-Punkt-Verbindung, da ein Rundruf nur einmal über einen Kommunikationsstrang gesendet wird. Time-to-Live-Parameter gibt die Anzahl passierbarer Router (um die Lebensdauer zu begrenzen). 16

17 public class Talker { // Ein Datagramm DatagramPacket datagram; // Ein MulticastSocket aus java.net.* MulticastSocket socket; int port = 6789; // Constructor public Talker () {... public static void main(string args[]) { Talker tk = new Talker(); // Talker 17

18 public Talker () { try { // Socket auf Port 6789 initialisieren InetAddress group = InetAddress.getByName(" "); socket = new MulticastSocket(6789); socket.joingroup(group); // Info auf Console ausgeben System.out.println("*** MulticastTalker: Socket created"); int i = 0; while (true) { // Datagramm senden String msg = new String("Hi,... "+Integer.toString(i)); byte[] buf = msg.getbytes(); datagram = new DatagramPacket(buf, buf.length,group,port); socket.send(datagram); System.out.println("+++ Datagram sent (Text: "+msg+")"); i++; catch (IOException ex) { 18

19 public class Listener { // Datagramm zum Empfangen byte[] buffer = new byte[1000]; DatagramPacket datagram = new DatagramPacket(buffer,buffer.length); MulticastSocket socket; int port = 6789; // Constructor public Listener() {... public static void main(string args[]) { Listener ls = new Listener(); // Listener 19

20 // Constructor public Listener() { try { // Socket auf Port 6789 starten socket = new MulticastSocket(port); System.out.println("*** MulticastListener: Socket created"); // Anmelden bei einer Multicast-Gruppe InetAddress group = InetAddress.getByName(" "); socket.joingroup(group); // Auf Datenpakete warten while (true) { socket.receive(datagram); String msg = new String(datagram.getData()); System.out.println("--- +datagram.getaddress().gethostaddress()+" said: "+msg); catch (IOException ex) { 20

Netzwerkprogrammierung & Threads

Netzwerkprogrammierung & Threads & Threads Praktikum aus Softwareentwicklung 2 Netzwerp. - 1 & Threads URL, URLConnection, UDP, TCP Threads Parallele Programme, Synchronisation, Netzwerp. - 2 Grundlagen (1/2) Kommunikation zwischen verteilten

Mehr

Programmiermethodik. Übung 10

Programmiermethodik. Übung 10 Programmiermethodik Übung 10 Sommersemester 2011 Fachgebiet Software Engineering [email protected] Agenda Vorstellung Musterlösung HA 6 Client/Server Kommunikation in Java Vorstellung HA 7

Mehr

Referat: Netzwerkprogrammierung in Java

Referat: Netzwerkprogrammierung in Java 1.)ISO/OSI und Internet Referenzmodell Referat: Netzwerkprogrammierung in Java ISO/OSI 7 Schichtenmodell (1-Bitübertragung, 2-Sicherung, 3-Netzwerk, 4-Transport, 5-Sitzung, 6- Darstellung, 7-Anwendung)

Mehr

Client-Server TCP/IP - Kodierung

Client-Server TCP/IP - Kodierung Client-Server TCP/IP - Kodierung Die klassen Ein (engl. Sockel) ist eine bidirektionale Netzwerk-Kommunikationsschnittstelle, deren Verwaltung das Betriebssystem übernimmt. Die Kombination aus IP-Adresse

Mehr

Verbindungen zu mehreren Clients. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 23: Netzwerkprogrammierung/ Kommunikation 2

Verbindungen zu mehreren Clients. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 23: Netzwerkprogrammierung/ Kommunikation 2 Universität Osnabrück 1 Verbindungen zu mehreren Clients 3 - Objektorientierte Programmierung in Java Vorlesung 23: Netzwerkprogrammierung/ Kommunikation 2 Wie könnte das bereits vorgestellte Programm

Mehr

Socket-Programmierung unter Java

Socket-Programmierung unter Java Socket-Programmierung unter Java 1 - Grundlagen: Datenströme Datenströme JAVA unterscheidet Streams und Reader/Writer Zur Dateneingabe: InputStream oder Reader Zur Datenausgabe: OutputStream oder Writer

Mehr

Netzwerkprogrammierung & Threads

Netzwerkprogrammierung & Threads & Praktikum aus 1 & URL, URLConnection, UDP, TCP Parallele Abläufe, Synchronisation, 2 Grundlagen (1/4) Kommunikation zwischen verteilten Programmen Host Computer Java Virtuelle Maschine Host Computer

Mehr

Socket-Programmierung unter Java

Socket-Programmierung unter Java Datenströme -Programmierung unter Java 1 - Grundlagen: Datenströme JAVA unterscheidet Streams und Reader/Writer Zur Dateneingabe: InputStream oder Reader Zur Datenausgabe: OutputStream oder Writer Verwende

Mehr

Verteilte Systeme - Java Networking (Sockets) -

Verteilte Systeme - Java Networking (Sockets) - Verteilte Systeme - Java Networking (Sockets) - Prof. Dr. Michael Cebulla 30. Oktober 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 36 M. Cebulla Verteilte Systeme Gliederung Grundlagen TCP/IP

Mehr

Programmiermethodik. Übung 13

Programmiermethodik. Übung 13 Programmiermethodik Übung 13 Sommersemester 2010 Fachgebiet Software Engineering [email protected] Agenda Vorstellung Musterlösung HA9 Mancala Showroom Client/Server Kommunikation in Java

Mehr

Netzwerkprogrammierung & Threads

Netzwerkprogrammierung & Threads Netzwerkprogrammierung & Threads Praktikum aus 1 Netzwerkprogrammierung & Threads Netzwerkprogrammierung URL, URLConnection, UDP, TCP Threads Praktikum aus Parallele Programme, Synchronisation, 2 Netzwerkprogrammierung

Mehr

Client-Server TCP/IP - Kodierung

Client-Server TCP/IP - Kodierung Client-Server TCP/IP - Kodierung Die Socketklassen Ein Socket (engl. Sockel) ist eine bidirektionale Netzwerk-Kommunikationsschnittstelle, deren Verwaltung das Betriebssystem übernimmt. Die Kombination

Mehr

Java und Netzwerkkommunikation

Java und Netzwerkkommunikation Java und Netzwerkkommunikation Ziel: Kommunikation über Rechnergrenzen hinweg Grundlagen Sockets in Java Java-Netzwerk-Einführung Seite 1 Grundbegriffe Senden und Empfangen von Daten! Frau B Herr A Sender

Mehr

Netzwerkprogrammierung

Netzwerkprogrammierung Netzwerkprogrammierung 1 Netzwerkverbindungen Das Entwurfsziel von Java war: Einfache Verbindung zwischen Rechnern und SetBox-Systemen. Das Standardpaket java.net hilft bei allen Netzwerkverbindungen.

Mehr

Client-Server TCP/IP - Kodierung

Client-Server TCP/IP - Kodierung Client-Server TCP/IP - Kodierung (1.) (a.) Testen Sie das erste Beispiel aus dem Ordner 01: Starten Sie Client und Server auf dem gleichen PC, aber den Server zuerst! (b.) In welchem Bereich müssen die

Mehr

TCP und UDP Sockets in Java

TCP und UDP Sockets in Java TCP und UDP Sockets in Java Grundlegende Mechanismen Server reserviert Port: Klient: - Server: bind Server nimmt Verbindungswünsche an Klient: - Server: listen Klient möchte sich verbinden Klient: connect;

Mehr

Beispiel Time Client/Server

Beispiel Time Client/Server Beispiel Time Client/Server /** * * Programmbeschreibung: * --------------------- * Dieses Programm ermittelt über eine TCP/IP-Verbindung die Uhrzeit eines * entfernten Rechners, wobei es sowohl die Rolle

Mehr

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets.

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets. Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 19 2 / 19 Über einen Socket kann eine Anwendung die Implementierung des Netzwerkprotokolls des darunter liegenden Betriebssystems

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,

Mehr

Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am

Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am Aufgabe 1 Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am 16.3.2002 Folgende Implementierung löst die gestellte Aufgabe : public interface Figur { public void anzeigen (); public

Mehr

4. Thread- und Netzwerk- Programmierung

4. Thread- und Netzwerk- Programmierung 4. Thread- und Netzwerk- Programmierung 4.1 Ziel dieses Kapitels 4.2 Prozeß versus Thread 4.3 Thread-Programmierung 4.4 TCP/IP Grundlagen 4.5 TCP Programmierung 3. TCP/IP und Threads 3-1 4.1 Ziel dieses

Mehr

Ausnahmebehandlung in Java

Ausnahmebehandlung in Java Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception

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

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 [email protected] 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert

Mehr

Programmierung mit Threads in Java

Programmierung mit Threads in Java Programmierung mit Threads in Java Harald Kosch and Matthias Ohlenroth Institut für Informationstechnologie Universität Klagenfurt H. Kosch Threads in Java 1 Inhalt Grundlagen: Threads und Datenlokalität

Mehr

Inhalt. Bukkit/Spigot & Bungee Plugin Channel

Inhalt. Bukkit/Spigot & Bungee Plugin Channel Bukkit/Spigot & Bungee Plugin Channel Bitte beachte, dass dieser Thread nur für die Kommunikation zwischen Bukkit/SpigotBungee ist (bzw. Bukkit/SpigotBukkit/Spigot). Inhalt Was ist eine Plugin Message?

Mehr

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Arrays: Wiederholung Ein

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

Jan Distel. Im Rahmen der Veranstaltung Fortgeschrittene Programmierung in Java

Jan Distel. Im Rahmen der Veranstaltung Fortgeschrittene Programmierung in Java Jan Distel Im Rahmen der Veranstaltung Fortgeschrittene Programmierung in Java Jan Distel - Diplomarbeitskolloquium 02.07.2010 1. Allgemeines 2. Datagram-Sockets 3. Sockets 4. Server-Sockets 5. Socket-Channels

Mehr

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7. CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)

Mehr

Softwarepraktikum Sommersemester 2006

Softwarepraktikum Sommersemester 2006 Softwarepraktikum Sommersemester 2006 Netzwerkprogrammierung in Java Ralf Wienzek [email protected] Ulrich Loup [email protected] Grundlagen Netzwerkprogrammierung TCP/IP

Mehr

Java I/O, Serialisierung und Netzwerkprogrammierung

Java I/O, Serialisierung und Netzwerkprogrammierung Java I/O, Serialisierung und Netzwerkprogrammierung Philipp Güttler 16. Dezember 2009 Universität Ulm, Abt. SGI Progwerkstatt 2 19 Gliederung Java I/O, Serialisierung und Netzwerkprogrammierung 16. Dezember

Mehr

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer Java Kurs Objektorientierung II & die Java Klassenbibliothek Kristian Bergmann und Arthur Lochstampfer Vergleich class Apfel { String farbe; int gewicht; String geerntetin; class Erdbeere { String farbe;

Mehr

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007 Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007 Name: Vorname: Matrikelnummer: Studiengang: E-Mail: Schreiben Sie zunächst sofort Ihren Namen und Matrikelnummer auf

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Spezielle Technik aus dem Java-Umfeld Ausführung von Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VMs Aufruf

Mehr

1 Byteströme. 2 Spezialisierungen von Strömen. Lösungsskizze Aufgabe 1. Hinweise Aufgabe 2. Streams (Ein-/Ausgabe) Sockets (Netzwerkprogrammierung)

1 Byteströme. 2 Spezialisierungen von Strömen. Lösungsskizze Aufgabe 1. Hinweise Aufgabe 2. Streams (Ein-/Ausgabe) Sockets (Netzwerkprogrammierung) C Überblick über die 2. Übung C Überblick über die 2. Übung 1 Byteströme Lösungsskizze Aufgabe 1 Hinweise Aufgabe 2 Streams (Ein-/Ausgabe) Benutzer Sockets (Netzwerkprogrammierung) Serialisierung Universität

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 [email protected] Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

OOP: Nebenläufigkeiten Threads. Dipl.-Inform. Arnold Willemer

OOP: Nebenläufigkeiten Threads. Dipl.-Inform. Arnold Willemer OOP: Nebenläufigkeiten Threads Dipl.-Inform. Arnold Willemer [email protected] Schlafen für Profis Die C-64-Lösung kocht und blockiert den Prozessor while (!fertig) // nichts tun: busy waiting

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung

Mehr

Advanced Network Programming

Advanced Network Programming 1 Advanced Network Programming Inhalt Netzwerkkommunikation Protokolle Verbindungsaufbau, -kontrolle, Datentransfer Socketprogrammierung TPC und UDP Client- und Serversockets verbindungsorientierte Server

Mehr

Einführung Verteilte Systeme - Java Threads I -

Einführung Verteilte Systeme - Java Threads I - Einführung Verteilte Systeme - Java Threads I - Prof. Dr. Michael Cebulla 20. November 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 38 M. Cebulla Verteilte Systeme Gliederung Wiederholung:

Mehr

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore. Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung

Mehr

Serielle Kommunikation - Kodierung

Serielle Kommunikation - Kodierung Serielle Kommunikation - Kodierung (1.) Erstellen Sie nachfolgende Klasse: Dabei haben die Methoden folgende Funktionen: exists(): Überprüft, ob eine serielle Schnittstelle existiert getproperties(): Liefert

Mehr

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten:

Mehr

Programmieren 2 12 Netzwerke

Programmieren 2 12 Netzwerke Programmieren 2 12 Netzwerke Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke [email protected] 1 Motivation Datenaustausch zwischen Programmen Spielstand Chat

Mehr

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Netzwerkprogrammierung PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Steffen Helke, Marcus Mews Technische Universität Berlin Fachgebiet Softwaretechnik 17. Juni 2013 Übersicht Grundlagen

Mehr

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a

Mehr

Klausur: Java (Liste P)

Klausur: Java (Liste P) Klausur: Java (Liste P) SS05 Erlaubte Hilfsmittel: Gebundene! Unterlagen (Skript mit Anmerkungen, eigene Mitschrift) und maximal ein Buch. Bitte keine losen Blätter. Lösung ist auf den Klausurbögen anzufertigen.

Mehr

Java-Programmierung. Remote Method Invocation - RMI

Java-Programmierung. Remote Method Invocation - RMI Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig

Mehr

Arten von Streams. Daten. Bytes (8-Bits) Java Programm. Daten. Java Programm. Characters (16 - Bits)

Arten von Streams. Daten. Bytes (8-Bits) Java Programm. Daten. Java Programm. Characters (16 - Bits) Datenströme Arten von Streams Daten 0 1 1 0 1 0 1 0 Java Programm Bytes (8-Bits) Daten 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 Java Programm Characters (16 - Bits) Byteströme(InputStream/OutputStream) I Java Programm

Mehr

B.2 Das Java Ein-/Ausgabesystem

B.2 Das Java Ein-/Ausgabesystem B.1 Überblick über die 1. Übung B.1 Überblick über die 1. Übung 1 Byteströme Streams (Ein-/Ausgabe) Sockets (Netzwerkprogrammierung) Serialisierung Benutzer Universität Erlangen-Nürnberg Informatik 4,

Mehr

Klausur Software-Entwicklung März 01

Klausur Software-Entwicklung März 01 Aufgabe 1: minimaler Punktabstand ( 2+5 Punkte ) Matrikelnr : In einem Array punkte sind Koordinaten von Punkten gespeichert. Ergänzen Sie in der Klasse Punkt eine Klassen-Methode (=static Funktion) punktabstand,

Mehr

Handbuch konsultieren!

Handbuch konsultieren! Zeichenketten Klasse String Enthält zahlreiche Methoden z.b.: int length(): Anzahl der Zeichen in Zeichenkette String substring(int start): Unterzeichenkette ab Position start boolean equalsignorecase(string

Mehr

2 Verbindungslose Kommunikation mit UDP

2 Verbindungslose Kommunikation mit UDP 2 Verbindungslose Kommunikation mit UDP Das User Datagram Protocol (UDP) stellt grundlegende Funktionen zur Verfügung, um mit geringem Aufwand Daten zwischen kommunizierenden Prozessen austauschen zu können.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Zusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks

Zusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks Zusammenfassung für CS-Prüfung 3 Seite 1 CS-Zusammenfassung für Prüfung 3 vom 24. 6. 2002 Deadlock Im Beispiel gibt es 3 Deadlocks Unterschied zwischen Blockieren, Verklemmen und Verhungenrn= -> Band 1

Mehr

Kommentare, Client-Server, Protokolle

Kommentare, Client-Server, Protokolle Kommentare, Client-Server, Protokolle Grundlagen für die erste Praktikumswoche 19. Oktober 2006 Dokumentationsziel Zweck und Funktionsweise sollten so dokumentiert werden, dass ein Programmierer eine Klasse

Mehr

Java - Programmierung - Prozedurale Programmierung 1

Java - Programmierung - Prozedurale Programmierung 1 Java - Programmierung - Prozedurale Programmierung 1 // elementare Datentypen public class el_dt public static void main(string args []) byte b = 127; short s = 32767; int i = 2147483647; long l = 9223372036854775807L,

Mehr

Netzwerkprogrammierung mit Java

Netzwerkprogrammierung mit Java Netzwerkprogrammierung mit Java Eine Übersicht über Java NIO Andre Ufer [email protected] Zusammenfassung. Diese Ausarbeitung beschreibt die Netzwerkprogrammierung unter Java. Der Schwerpunkt

Mehr

Fragenkatalog ESOP WS 16/17

Fragenkatalog ESOP WS 16/17 Fragenkatalog ESOP WS 16/17 1. Einleitung 1.1 Was ist Programmieren? 1.2 Was ist ein Programm? 1.3 Welche Schritte werden bei der Programmerstellung benötigt? 1.4 Was ist ein Algorithmus? 1.5 Was sind

Mehr