Socket-Programmierung in Java
|
|
- Bettina Falk
- vor 8 Jahren
- Abrufe
Transkript
1 Socket-Programmierung in Java Abdelmajid Khelil Inhalt Das Referenzmodell für offene Systeme Kommunikationsprotokolle Socket-Definition TCP-Sockets UDP-Sockets Eigener TCP-Server Programmieren TCP Client-Server Beispiel UDP Client-Server Beispiel SMTP -Client Programmieren Arbeiten mit URLs Java Kompaktkurs Socket Programmierung 2
2 Das Referenzmodell für offene Systeme Java Kompaktkurs Socket Programmierung 3 Verbindungsarten Man unterscheidet in der Datenkommunikation zwischen zwei Arten von Protokollen: Verbindungsorientiert: (Telefon-System) Vor dem Austausch von Daten wird eine Verbindung zum Kommunikationspartner hergestellt. Hat meist einen höheren Verarbeitungsaufwand im Rechner. Drei Phasen sind notwendig: Verbindungsaufbau, Datentransfer, Verbindungsabbau Anwendungen: Datentransfer Verbindungslos (Post-System) Einzelne Nachrichten werden versendet. Transport von in sich abgeschlossenen Nachrichten (Datagramme), zustandslos. Hat meist einen höheren Verarbeitungsaufwand im Netz. Anwendungen: Datenbanken, transaktionale Systeme. Java Kompaktkurs Socket Programmierung 4
3 TCP/IP versus UDP/IP TCP (Transfer Control Protocol) Ein Verbindungsorientiertes Protokoll auf der Transportschicht (4). TCP ist eine sichere, strom-orientierte, bidirektionale Verbindung UDP (User Datagram Protocol) Verbindungsloses Protokoll auf der Transportschicht (4). UDP ist eine unsichere Verbindung für Paketverkehr. Unzuverlässig: Weder die Auslieferung noch deren Reihenfolge ist garantiert Schnell. IP (Internet Protocol) Verbindungsloses Protokoll auf der Vermittlungsschicht (3). Java Kompaktkurs Socket Programmierung 5 Ports Def. TCP und UDP Protokolle verwenden Ports, um eintreffende Daten zum betroffenen laufenden Prozess weiterzuleiten. Bekannte Services: ftp (tcp) 21 telnet (tcp) 23 smtp (tcp) 25 login (tcp) 513 Java Kompaktkurs Socket Programmierung 6
4 Verbindungsaufbau 1. Schritt 2. Schritt Java Kompaktkurs Socket Programmierung 7 Prinzip Der Server ruft bind und listen auf: Der Client ruft connect auf: Der Server ruft accept auf: Verbindungsarten: UDP (Datagram) TCP (Stream) Java Kompaktkurs Socket Programmierung 8
5 Definition Ein Socket (Steckdose, Buchse) ist eine Datenstruktur zur Administration von (Netzwerk-) Verbindungen. Ein Socket ist ein Endpunkt einer bidirektionalen Kommunikationsbeziehung zwischen zwei im Netz laufenden Programmen (Prozessen). Ein Socket ist mit einer Portnummer verbunden so, dass TCP- Schicht die Anwendung identifizieren kann, für die die Daten gesendet wurden. Richtung: Client Socket: Verbindung mit existierendem Dienst Server Socket: Stellt Dienst zur Verfügung Java Kompaktkurs Socket Programmierung 9 Warum Java Sockets? Zwei wichtige Vorteile gegenüber RMI: Kommunizieren mit nicht-java Objekten und Programmen. Kommunizieren mit Effizienz: Die Objektserialisierung erfordert einen erhöhten Rechenaufwand und führt zur Übertragung größerer Datenvolumen. Vorteile von RMI: RMI liefert mehr Flexibilität: Neue Klassen können von einem anderen Rechner dynamisch zur Applikation hinzugeladen werden. Java Kompaktkurs Socket Programmierung 10
6 TCP-Sockets TCP ist eine sichere, strom-orientierte, bidirektionale Verbindung. Als Endpunkte dienen ein Socket beim Klienten und ein ServerSocket beim Server. Die Ströme erhält man mit getinputstream() und getoutputstream(), Die Kommunikation erfolgt mit read() und write() Typische Anwendungsbeispiele sind die meisten Internet- Protokolle: FTP, HTTP, SMTP, TELNET Java Kompaktkurs Socket Programmierung 11 TCP-Sockets: die wichtigsten Klassen java.net.socket.serversocket.datainputstream.printstream.dataoutputstream.url.urlconnection Java Kompaktkurs Socket Programmierung 12
7 UDP-Sockets UDP: Universal ("unreliable") Datagram Protocol UDP ist eine unsichere Verbindung für Paketverkehr. Als Endpunkte dienen je ein DatagramSocket bei Klient und Server, über die DatagramPacket-Objekte mit send() verschickt und mit receive() empfangen werden. Die Paket-Größe ist limitiert. Typische Anwendungsbeispiele sind informative Internet-Protokolle wie DNS, NIS, TFTP sowie eine Variante der Remote Procedure Calls und darauf aufbauend NFS. Java Kompaktkurs Socket Programmierung 13 UDP-Sockets: die wichtigsten Klassen (1) java.net.datagrampacket Nur Aufbau von Datenstruktur, keine Verbindung! Wichtige Konstruktoren! DatagramPacket(byte[] buf, int length): Zum Empfang von length Bytes in buf! DatagramPacket(byte[] buf, int length, InetAddress address, int port): Zum Versenden von length Bytes aus buf an address und port Wichtige Methoden! byte[] getdata()! void setdata(byte[] buf)! int getlength()! void setlength(int length)! void setaddress(inetaddress iaddr)! void setport(int iport) Java Kompaktkurs Socket Programmierung 14
8 UDP-Sockets: die wichtigsten Klassen (2) java.net.datagramsocket Repräsentiert die eigentliche Verbindung Wichtige Konstruktoren! DatagramSocket()! DatagramSocket(int port) Wichtige Methoden! void send(datagrampacket p) throws IOException! void receive(datagrampacket p) throws IOException! void close() java.net.multicastsocket Ist vollständig von der oben beschriebenen Klasse DatagramSocket abgeleitet Für einen netzwerkweiten Datagram- Broadcast Java Kompaktkurs Socket Programmierung 15 Der Client (TCP) 1. Schritt: Ein Socket Objekt erzeugen (Öffnen eines Sockets): Socket Client = new Socket( hostname,portnumber); 2. Schritt: Ein output stream erzeugen, um Daten zu senden: PrintStream out = new PrintStream(Client.getOutputStream()); bzw. DataOutputStream out2 = new DataOutputStream(Client.getOutputStream()); 3. Schritt: Ein input stream erzeugen, um die Antwort des Servers zu empfangen: DataInputStream in = new DataInputStream(Client.getInputStream()); bzw. BufferedReader in = new BufferedReader( new InputStreamReader(Client.getInputStream())); 4. Schritt: Nutzdaten senden und empfangen. in.readline(); out.println(); aber out2.writebytes(); 5. Schritt: Ströme schließen: out.close(); in.close(); 6. Schritt: Socket schliessen: client.close(); Java Kompaktkurs Socket Programmierung 16
9 Der Server (TCP) 1. Schritt: Ein ServerSocket Objekt erzeugen: ServerSocket listensocket = new ServerSocket(portNumber); 2. Schritt: Ein Socket Objekt aus dem ServerSocket erzeugen: While (somecondition) { Socket server = listensocket.accept(); dosomethingwith(server); 3. Schritt: Ein input stream erzeugen: DataInputStream in = new DataInputStream(server.getInputStream()); 4. Schritt: Ein output stream erzeugen: PrintStream out = new PrintStream(server.getOutputStream()); 5. Schritt: Nutzdaten senden und empfangen. in.readline(); out.println(); 6. Schritt: Ströme schließen: out.close(); in.close(); 7. Schritt: Socket schliessen: server.close(); Java Kompaktkurs Socket Programmierung 17 Kompilieren und ausführen Kompilieren der java-quelldateien: javac Client.java javac Server.java Ausführen der Testszenarien TCP: Starten des Servers mit: java Server Starten des Clients (in einer zweiten Shell) mit: java Client Ggf. starten eines weiteren Clients. Beenden des Servers (mit Crtl-C). [UDP analog] Java Kompaktkurs Socket Programmierung 18
10 Eigener TCP-Server Programmieren Der Server Ist mit jedem Telnet-Client-Programm aufrufbar, Echot die Eingaben und Wird durch Eingabe der Zeichenfolge ciao beendet Damit dies Internet-weit erfolgen kann, muss der eigene Rechner über eine IP-Verbindung angeschlossen sein: Zu Testzwecken kann der Server zunächst mit dem Telnet-Client-Programm vom eigenen Rechner genutzt werden (TCP/IP-Protokoll muss allerdings installiert sein): telnet Der Ablauf Server-Programm mit Java erstellen Server auf dem eigenen Rechner starten und laufen lassen während der Server läuft, ist er im Internet über die Internet-Adresse und dem gewählten Port (im Beispiel 7788) erreichbar. Java Kompaktkurs Socket Programmierung 19 Eigener TCP-Server: SimpleServer.java Das Serverprogramm SimpleServer.java besteht aus zwei Klassen: SimpleServer Die zentrale Applikations-Klasse SimpleServer erstellt die Socket- Verbindungen zu "anrufenden" Verbindungen. Jede Telnet-Verbindung zu SimpleServer ist eine eigene SocketVerbindung. ServerThread Die Datenkommunikation über Eingabe- und Ausgabe-Streams erfolgt in der Klasse ServerThread. Würde die Datenkommunikation nicht als Thread ausgeführt, würde bereits die erste Kommunikationsverbindung den eigenen Server-Rechner vollständig belegen. Java Kompaktkurs Socket Programmierung 20
11 SimpleServer.java (1) In der Klasse SimpleServer wird eine Instanz ss von ServerSocket auf dem Port 7788 erstellt. Die Methode accept() von ServerSocket erwartet Client-Anfragen auf dem Server-Socket Liegt eine Anfrage vor, wird ein neuer Thread ServerThread gestartet, der die Client-Anforderung bedient (jede Socket- ServerSocket-Verbindung ist somit ein eigener Thread) Java Kompaktkurs Socket Programmierung 21 SimpleServer.java (2) import java.io.*; // import der Klassen für Streams import java.net.*; // import der Klassen für Netzwerkkommunikation public class SimpleServer { public static void main(string args[]) { int anz = 1; try { ServerSocket ss = new ServerSocket(7788); while(true) { Socket sverb = ss.accept(); System.out.println(" Verbindung " + anz); new ServerThread(sverb,anz).start(); anz++; catch (Exception e) { System.out.println(e); Java Kompaktkurs Socket Programmierung 22
12 SimpleServer.java (3) In der Klasse ServerThread wird eine Instanz sverb der Klasse Socket erstellt. Die Streams DataInputStream und PrintStream werden genutzt, zur Abwicklung der über die Socket-Verbindung eingehenden und ausgehenden Datenströme Java Kompaktkurs Socket Programmierung 23 SimpleServer.java (4) class ServerThread extends Thread { Socket sverb; int nverb; /* Konstruktor von ServerThread wird bei jeder neuen Verbindung aus SimpleServer aufgerufen */ ServerThread (Socket s, int n) { this.sverb = s; this.nverb = n; public void run () { try { /** Verwaltet den Eingabestream der Socketverbindung */ DataInputStream in =newdatainputstream(sverb.getinputstream()); /** Verwaltet den Ausgabestream der Socketverbindung */ PrintStream out =newprintstream(sverb.getoutputstream()); out.println( "Hallo - Willkommen beim Simple-Echo-Server!\r\n"); Java Kompaktkurs Socket Programmierung 24
13 SimpleServer.java (5) boolean weiter = true; while (weiter) { String str = in.readline(); if (str == null) weiter = false; else { out.println("enter ciao "+nverb+" : "+str); if (str.trim().equals("ciao")) weiter=false; // Ende if // Ende while sverb.close(); catch (IOException e) { System.out.println(e); // Ende run() // Ende SimpleServer Java Kompaktkurs Socket Programmierung 25 TCPClient.java (1) import java.io.*; import java.net.*; /** Testprogramm für einen TCP Client * Dem Client wird per Kommandozeile ein Satz eingegeben, der an den * Server gesendet wird. Nach erhalt der Antwort beendet sich der * Client. */ class TCPClient { /**Exceptions, die auftreten können, werden durchgereicht public static void main(string args[]) throws java.net.socketexception, java.io.ioexception { /** Nachricht, die an den Server geschickt wird */ String sentence; /** Nachricht, die vom Server empfangen wird */ String modifiedsentence; /** Objekt, dass Benutzerdaten einliest */ BufferedReader infromuser = new BufferedReader( new InputStreamReader(System.in)); Java Kompaktkurs Socket Programmierung 26
14 TCPClient.java (2) /** Stellt die Verbindung zum Server auf Port 6789 her. In diesem Fall läuft der Server auf dem gleichen Rechner wie der Client. */ Socket clientsocket = new Socket("localhost", 6789); DataOutputStream outtoserver = new DataOutputStream(clientSocket.getOutputStream()); /** Verwaltet den Eingabestream der Socketverbindung, 2. Möglichkeit*/ BufferedReader infromserver = new BufferedReader( new InputStreamReader(clientSocket.getInputStream())); /** Der Benutzer gibt einen Satz ein */ sentence = infromuser.readline(); Java Kompaktkurs Socket Programmierung 27 TCPClient.java (3) /* Der Satz wird über den Ausgabestream der Socketverbindung an den Server gesendet. */ outtoserver.writebytes(sentence +'\n'); /* Es wird auf die Nachricht vom Server gewartet und diese Empfangen */ modifiedsentence = infromserver.readline(); /* Die Antwort wird auf der Konsole ausgegeben */ System.out.println("FROM SERVER: "+ modifiedsentence); /* Der Client schliesst die Socketverbindung */ clientsocket.close(); // Programmende Java Kompaktkurs Socket Programmierung 28
15 TCPServer.java (1) import java.io.*; import java.net.*; /** Testprogramm für einen TCP Server Der Server empfängt Nachrichten, wandelt sie in Grossbuchstaben und sendet sie zurück. */ class TCPServer { public static void main(string args[]) throws java.net.socketexception, java.io.ioexception { /** Die vom Client gesendete Nachricht */ String clientsentence; /** Die Antwort fuer den Client */ String capitalizedsentence; /** Der Serverdienst wird auf Port 6789 aufgesetzt */ ServerSocket welcomesocket = new ServerSocket(6789); while(true) { /** Eingehende TCP Verbindungen werden an einen eigenen (virtuellen) Socket weitergereicht, über den die eigentliche Kommunikation stattfindet (Damit mehrere Anfragen gleichzeitig bearbeitet werden können, müsste dieser Teil durch Threads parallelisiert werden.) */ Socket connectionsocket = welcomesocket.accept(); Java Kompaktkurs Socket Programmierung 29 TCPServer.java (2) BufferedReader infromclient = new BufferedReader( new InputStreamReader(connectionSocket.getInputStream())); DataOutputStream outtoclient = new DataOutputStream( connectionsocket.getoutputstream()); clientsentence = infromclient.readline(); /* Wandele die Nachricht in Grossbuchstaben */ capitalizedsentence = clientsentence.touppercase() +'\n'; /* Sende die Antwort an den Client */ outtoclient.writebytes(capitalizedsentence); /* Der Server schliesst die Socketverbindung nicht. Weitere * Anfragen über diesen Socket werden jedoch nicht beachtet. */ // Ende der Schleife // Ende von main (wird nie erreicht) Java Kompaktkurs Socket Programmierung 30
16 UDPClient.java (1) import java.io.*; /* import der Klassen fuer Streams */ import java.net.*; /* import der Klassen fuer Netzwerkkommunikation */ /** Testprogramm fuer einen UDP Client. Dem Client wird per Kommandozeile ein Satz eingegeben, der an den Server gesendet wird. Nach erhalt der Antwort beendet sich der Client. */ class UDPClient { public static void main(string args[]) throws java.net.socketexception, java.io.ioexception { BufferedReader infromuser = new BufferedReader( new InputStreamReader(System.in)); /** Erstellt einen UDP Socket */ DatagramSocket clientsocket = new DatagramSocket(); /** Enthält die IP Adresse des Servers. In diesem Fall laeuft der * Server auf dem gleichen Rechner wie der Client. */ InetAddress IPAddress = InetAddress.getByName("localhost"); Java Kompaktkurs Socket Programmierung 31 UDPClient.java (2) byte[] senddata = new byte[1024]; /* Datenpuffer fuer ausgehende Pakete */ byte[] receivedata = new byte[1024]; /* Datenpuffer fuer eingehende Pakete */ String sentence = infromuser.readline(); /* Der Benutzer gibt einen Satz ein */ senddata = sentence.getbytes(); /* Der Satz wird in den Sendepuffer kopiert */ /* Aus dem Sendepuffer wird ein UDP Paket "geschnuert"; Zieladresse ist der UDPServer auf dem Port 9876 */ DatagramPacket sendpacket = new DatagramPacket(sendData, senddata.length, IPAddress, 9876); clientsocket.send(sendpacket); /* das UDP Paket wird ueber Socket verschickt */ DatagramPacket receivepacket = new DatagramPacket(receiveData, receivedata.length); /* Variable fuer eingehende UDP Pakete */ /* Warten auf eingehende UDP Pakete; weiter, wenn Paket eingetroffen */ clientsocket.receive(receivepacket); Java Kompaktkurs Socket Programmierung 32
17 UDPClient.java (3) /** Lese die Antwort des Servers aus dem emfangenem UDP Paket aus */ String modifiedsentence = new String(receivePacket.getData()); /* Die Antwort wird auf der Konsole ausgegeben */ System.out.println("FROM SERVER: " +modifiedsentence); /* Schliessen des Sockets */ clientsocket.close(); Java Kompaktkurs Socket Programmierung 33 UDPServer.java (1) import java.io.*;import java.net.*; /** Testprogramm fuer einen UDP Server * Der Server empfaengt Nachrichten, wandelt sie in Grossbuchstaben und * sendet sie zurueck. */ class UDPServer { public static void main(string args[]) throws java.net.socketexception, java.io.ioexception { /** Erstellt einen UDPSocket der auf Port 9876 Verbindungen entgegennimmt */ DatagramSocket serversocket = new DatagramSocket(9876); byte[] receivedata = new byte[1024]; /** Datenpuffer fuer eingehende Pakete */ byte[] senddata = new byte[1024]; /** Datenpuffer fuer ausgehende Pakete */ while(true){ /** Variable fuer eingehende UDP Pakete */ DatagramPacket receivepacket = new DatagramPacket(receiveData, receivedata.length); Java Kompaktkurs Socket Programmierung 34
18 UDPServer.java (2) /* Warten auf eingehende UDP Pakete; weiter, wenn Paket eingetroffen */ serversocket.receive(receivepacket); /* Lese die Nachricht des Clients aus dem emfangenem UDP Paket aus */ String sentence = new String(receivePacket.getData()); /* Die IP Adresse des Clients */ InetAddress IPAddress = receivepacket.getaddress(); /* Der Port auf dem der Client erreichbar ist */ int port = receivepacket.getport(); String capitalizedsentence = sentence.touppercase(); /* Kopiere die Antwort in den Sendepuffer */ senddata = capitalizedsentence.getbytes(); /** "Schnüre" das Paket für den Client (seine IP Adresse und * Port wurden Zwischengespeichert) */ DatagramPacket sendpacket = new DatagramPacket(sendData, senddata.length, IPAddress, port); serversocket.send(sendpacket); /* Verschicke das Paket */ Java Kompaktkurs Socket Programmierung 35 SMTP Lieferung von Mails im Internet: Die Client-Maschine etabliert eine TCP-Verbindung zu Port 25 der Server- Maschine. An diesem Port befindet sich ein SMTP-Dämon (simple mail transfer protocol). Dämon akzeptiert eintreffende Verbindungen. Dämon kopiert -Nachrichten in Mailbox. Wenn die Nachricht nicht zulieferbar ist, ein Fehler-Bericht wird zum Sender zurückgegeben. Im folgenden ein SMTP-Client in Java Java Kompaktkurs Socket Programmierung 36
19 SMTP client (1) import java.io.*; import java.net.*; public class smtpclient { public static void main(string[] args) { Socket smtpsocket = null; DataOutputStream os = null; DataInputStream is = null; // Port 25 ist reserviert für SMTP try { smtpsocket = new Socket("hostname", 25); os = new DataOutputStream(smtpSocket.getOutputStream()); is = new DataInputStream(smtpSocket.getInputStream()); Java Kompaktkurs Socket Programmierung 37 SMTP client (2) catch (UnknownHostException e) { System.err.println("Don't know about host: hostname"); catch (IOException e) { System.err.println("Couldn't get I/O for the connection to: hostname"); // If everything has been initialized then we want to write some data // to the socket we have opened a connection to on port 25 if (smtpsocket!= null && os!= null && is!= null) { try { // The capital string before each colon has a special meaning to SMTP // you may want to read the SMTP specification, RFC1822/3 Java Kompaktkurs Socket Programmierung 38
20 SMTP client (3) os.writebytes("helo\n"); os.writebytes("mail From: os.writebytes("rcpt To: os.writebytes("data\n"); os.writebytes("from: os.writebytes("hi there\n"); // message body os.writebytes("\n.\n"); os.writebytes("quit"); // keep on reading from/to the socket till we receive the "Ok" from SMTP, // once we received that then we want to break. String responseline; while ((responseline = is.readline())!= null) { Java Kompaktkurs Socket Programmierung 39 SMTP client (4) System.out.println("Server: " + responseline); if (responseline.indexof("ok")!= -1) {break; os.close(); is.close(); smtpsocket.close(); catch (UnknownHostException e) { System.err.println("Trying to connect to unknown host: " + e); catch (IOException e) { System.err.println("IOException: " + e); Java Kompaktkurs Socket Programmierung 40
21 Arbeiten mit URLs URL (Uniform Resource Locator) ist Ein Verweis (Adresse) für eine Ressource im Internet Eine Klasse in java.net 1. Schritt: Erzeugen einer URL. URL meine_url = new URL(" 2. Schritt: Öffnen einer Verbindung zur URL URLConnection url_connect = meine_url.openconnection(); 3. Schritt: Erhalten eines Ausgabestroms aus der Verbindung. (Dieser Ausgabestrom kann z.b. mit dem Standardeingabestrom des cgi-bin-skripts auf dem Server verbunden werden). DataInputStream dis = new DataInputStream(meine_url.openStream()) 4. Schritt: Schreiben in den Ausgabestrom. 5. Schritt: Schließen des Ausgabestroms. Java Kompaktkurs Socket Programmierung 41 URL- Beispiel (1) import java.io.*; import java.net.*; public class URLConnectionTest { public static void main(string[] args) { if (args.length == 0) { System.err.println("Usage: URLConnectionTest <host> [<user> <password>]"); return; try { URL url = new URL(args[0]); URLConnection connection = url.openconnection(); // set username, password if specified on command line Java Kompaktkurs Socket Programmierung 42
22 URL- Beispiel (2) // set username, password if specified on command line if (args.length > 2) { String username = args[1], password = args[2]; String encoding = base64encode(username + ":" + password); connection.setrequestproperty("authorization", "Basic " + encoding); connection.connect(); // print header fields String key; for (int n = 1; (key = connection.getheaderfieldkey(n))!= null; ++n) { String value = connection.getheaderfield(n); System.out.println(key + ": " + value); Java Kompaktkurs Socket Programmierung 43 URL- Beispiel (3) // print convenience functions System.out.println(" "); System.out.println("getContentType: " + connection.getcontenttype()); System.out.println("getContentLength: " + connection.getcontentlength()); System.out.println("getContentEncoding: " + connection.getcontentencoding()); System.out.println("getDate: " + connection.getdate()); System.out.println("getExpiration: " + connection.getexpiration()); System.out.println("getLastModifed: " + connection.getlastmodified()); System.out.println(" "); BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); Java Kompaktkurs Socket Programmierung 44
23 URL- Beispiel (4) String line; // print first ten lines of contents for (int n = 1; (line = in.readline())!= null && n <= 10; ++n) System.out.println(line); if (line!= null) System.out.println("..."); catch (IOException e) { System.out.println(e); public static String base64encode(string s) { ByteArrayOutputStream bout = new ByteArrayOutputStream(); Base64OutputStream out = new Base64OutputStream(bOut); try { out.write(s.getbytes()); out.flush(); catch (IOException e) { return bout.tostring(); Java Kompaktkurs Socket Programmierung 45 URL- Beispiel (5) /* BASE64 encoding encodes 3 bytes into 4 characters Each set of 6 bits is encoded according to the tobase64 map. If the number of input bytes is not a multiple of 3, then the last group of 4 characters is padded with one or two = signs. Each output line is at most 76 characters. */ class Base64OutputStream extends FilterOutputStream { public Base64OutputStream(OutputStream out) { super(out); public void write(int c) throws IOException { inbuf[i] = c; i++; if (i == 3) { super.write(tobase64[(inbuf[0] & 0xFC) >> 2]); super.write(tobase64[((inbuf[0] & 0x03) << 4) ((inbuf[1] & 0xF0) >> 4)]); super.write(tobase64[((inbuf[1] & 0x0F) << 2) ((inbuf[2] & 0xC0) >> 6)]); super.write(tobase64[inbuf[2] & 0x3F]); Java Kompaktkurs Socket Programmierung 46
24 URL- Beispiel (6) col += 4; i=0; if (col >= 76) { super.write('\n'); col = 0; public void flush() throws IOException { if (i == 1) { super.write(tobase64[(inbuf[0] & 0xFC) >> 2]); super.write(tobase64[(inbuf[0] & 0x03) << 4]); super.write('='); super.write('='); Java Kompaktkurs Socket Programmierung 47 URL- Beispiel (7) else if (i == 2) { super.write(tobase64[(inbuf[0] & 0xFC) >> 2]); super.write(tobase64[((inbuf[0] & 0x03) << 4) ((inbuf[1] & 0xF0) >> 4)]); super.write(tobase64[(inbuf[1] & 0x0F) << 2]); super.write('='); private static char[] tobase64 = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', Java Kompaktkurs Socket Programmierung 48
25 URL- Beispiel (8) 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' ; private int col = 0; private int i = 0; private int[] inbuf = new int[3]; Ein Aufrufbeispiel ist java URLConnectionTest Java Kompaktkurs Socket Programmierung 49 Zusammenfassung Client-Server Programmierung in Java ist einfach. Das Package java.net stellt eine sehr mächtige und flexible Infrastruktur für Netzprogrammierung zur Verfügung. Die Packages Sun.* stellen auch sehr gute Klassen zur Verfügung, werden aber stetig aktualisiert und einige sind nicht portable. Java Kompaktkurs Socket Programmierung 50
Programmiermethodik. Übung 13
Programmiermethodik Übung 13 Sommersemester 2010 Fachgebiet Software Engineering andreas.scharf@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA9 Mancala Showroom Client/Server Kommunikation in Java
MehrTransmission 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
MehrProgrammieren 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
MehrProgrammieren 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
MehrNetzwerkprogrammierung & 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
MehrVerteilte 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
MehrBei Aufbau der Verbindung initialisiert der Sender das Überlastfenster auf die
Flusskontrolle - Überlast durch Netzengpässe Annahme: Paketverlust liegt selten an Übertragungsfehlern, eher an Überlast-Situationen. Nötig: Congestion Control Kapazität des Empfängers: Empfangsfenster
MehrMinimum aus beiden Fenstern ist die maximal zu sendende Anzahl von Bytes. Vergrößerung stoppt bei Erreichen des Empfängerfensters
Flusskontrolle - Überlast durch Netzengpässe Annahme: Paketverlust liegt selten an Übertragungsfehlern, eher an Überlast-Situationen. Nötig: Congestion Control Kapazität des Empfängers: Empfangsfenster
MehrVerbindungen 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
Mehr1. Netzwerkprogrammierung für mobile Geräte
1. Netzwerkprogrammierung für mobile Geräte Lernziele 1. Netzwerkprogrammierung für mobile Geräte Themen/Lernziele: Konzepte der verbindungslosen Kommunikation beherrschen Client/Server-Anwendungen auf
MehrAnwendungsprotokolle: 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
MehrFOPT 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
Mehr15 Transportschicht (Schicht 4)
Netzwerktechnik Aachen, den 16.06.03 Stephan Zielinski Dipl.Ing Elektrotechnik Horbacher Str. 116c 52072 Aachen Tel.: 0241 / 174173 zielinski@fh-aachen.de zielinski.isdrin.de 15 Transportschicht (Schicht
MehrTCP 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;
Mehrstellen eine Kommunikation zwischen Anwendungsprozessen bereit. TCP ist ein verbindungsorientiertes Protokoll TCP bestätigt die Ankunft der Pakete
Transportprotokolle im TCP/IP- Referenzmodell verbindungsorientiert verbindungslos HTTP FTP Telnet SMTP DNS SNMP TFTP Application Layer TCP UDP Transport Layer IGMP ICMP IP ARP RARP Internet Layer Ethernet
MehrProgrammiermethodik. Übung 10
Programmiermethodik Übung 10 Sommersemester 2011 Fachgebiet Software Engineering andreas.koch@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA 6 Client/Server Kommunikation in Java Vorstellung HA 7
MehrClient/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
MehrReferat: 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)
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrDistributed Computing Group
JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird
MehrNetzwerkprogrammierung
Netzwerkprogrammierung 1 Netzwerkverbindungen Das Entwurfsziel von Java war: Einfache Verbindung zwischen Rechnern und SetBox-Systemen. Das Standardpaket java.net hilft bei allen Netzwerkverbindungen.
MehrClient-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
Mehr2 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.
MehrKlausur 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
MehrJDBC. Allgemeines ODBC. java.sql. Beispiele
JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet
MehrInformatik 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
MehrAdvanced Network Programming
1 Advanced Network Programming Inhalt Netzwerkkommunikation Protokolle Verbindungsaufbau, -kontrolle, Datentransfer Socketprogrammierung TPC und UDP Client- und Serversockets verbindungsorientierte Server
MehrNetwork Communication. Dr. Jürgen Eckerle WS 06/07
Network Communication Dr. Jürgen Eckerle WS 06/07 1 Thread-Programmierung ist wichtig um Nebenläufigkeit bei der Netzwerkprogrammierung zu realisieren Typisches Muster beim Server: Server-Handler. Der
MehrTCP/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?
MehrSocket-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
MehrWeb Sockets mit HTML5. Quelle: www.html5rocks.com/de
Web Sockets mit HTML5 Quelle: www.html5rocks.com/de Intensive Client-Server-Kommunikation: Beispiele Online-Spiele mit mehreren Mitspielern Chat-Anwendungen Live-Sport-Ticker Echtzeit-Aktualisierungen
MehrKN 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
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrVerteilte Systeme - Java Networking (Sockets) 2 -
Verteilte Systeme - Java Networking (Sockets) 2 - Prof. Dr. Michael Cebulla 06. November 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 30 Michael Cebulla Verteilte Systeme Gliederung Wiederholung:
MehrInstitut für Betriebssysteme und Rechnerverbund Übungslösungen zur Vorlesung Verteilte Systeme, WS 02/03 http:www.ibr.cs.tu-bs.de/lehre/ws0203/vs/ Dozent: Prof. Dr. Stefan Fischer
MehrBeispiel 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Übungen zu Softwaretechnik
Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte
MehrE-Mail. Nachrichtenübertragung. Internetkommunikation Christof Fox. Wie werden Nachrichten Übertragen?
E-Mail Nachrichtenübertragung 1 Wie werden Nachrichten Übertragen? Über Protokolle: SMTP (Simple Mail Transfer Protocol) POP3 (Post Office Protocol Version 3) IMAP (Internet Message Access Protocol) 2
MehrAnleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)
Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite
MehrTCP/IP Programmierung. C# TimeServer Java6 TimeClient
TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7
MehrRechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können.
Rechnernetzwerke Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können. Im Gegensatz zu klassischen Methoden des Datenaustauschs (Diskette,
MehrARCHITEKTUR VON INFORMATIONSSYSTEMEN
ARCHITEKTUR VON INFORMATIONSSYSTEMEN File Transfer Protocol Einleitung Das World Wide Web war ja ursprünglich als verteiltes Dokumentenverwaltungssystem für die akademische Welt gedacht. Das Protokoll
MehrHow to install freesshd
Enthaltene Funktionen - Installation - Benutzer anlegen - Verbindung testen How to install freesshd 1. Installation von freesshd - Falls noch nicht vorhanden, können Sie das Freeware Programm unter folgendem
MehrSocket-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
MehrKontrollfragen: Internet
Kontrollfragen: Internet 1. Zählen Sie mindestens 5 Internet-Dienste auf. 2. Was ist eine virtuelle Verbindung? Vergleichen Sie eine virtuelle TCP/IP-Verbindung mit der Leitungsvermittlung (analoge Telefonverbindung).
MehrProgrammieren 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
MehrRechnernetze. 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
MehrNetworking. Motivation Grundlagen von Sockets Klasse Socket Klasse ServerSocket Exceptions Klasse URL
Networking Motivation Grundlagen von Sockets Klasse Socket Klasse ServerSocket Exceptions Klasse URL Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Netzwerkprogrammierung in Java Programme schreiben,
Mehr2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen
2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen Dienste des Internets Das Internet bietet als riesiges Rechnernetz viele Nutzungsmöglichkeiten, wie etwa das World
MehrJava 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
MehrClient-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
Mehr2.3 Applikationen. Protokolle: TCP/IP. Telnet, FTP, Rlogin. Carsten Köhn
2.3 Applikationen Telnet, FTP, Rlogin Carsten Köhn Protokolle: TCP/IP Application umfasst Dienste, die als Prozesse des Betriebssystems ausgeführt werden SMTP, FTP, HTTP, MIME Transport regelt die Kommunikation
MehrII. 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
MehrStudentische Lösung zum Übungsblatt Nr. 7
Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int
Mehri n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging
Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des
MehrPROG 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
MehrVS Praktikum 03 Konzept
Darstellung der Architektur: Manager VS Praktikum 03 Konzept Account 3 3 7 6 NameServiceServer 4 5 2 1 2 1 Geldautomat Filiale Messagearten: Für jede unterschiedliche Message gibt es eine eigene Klasse:
MehrTechnische Dokumentation SilentStatistikTool
Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...
MehrGesicherte Prozeduren
Gesicherte Prozeduren Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln zurückgeliefert.
MehrEinführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
MehrMan liest sich: POP3/IMAP
Man liest sich: POP3/IMAP Gliederung 1. Einführung 1.1 Allgemeiner Nachrichtenfluss beim Versenden von E-Mails 1.2 Client und Server 1.2.1 Client 1.2.2 Server 2. POP3 2.1 Definition 2.2 Geschichte und
MehrClient-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..................................................
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrPython 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
Mehr3. Stored Procedures und PL/SQL
3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln
MehrKommunikationsnetze. 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
MehrBernd Blümel. Verschlüsselung. Prof. Dr. Blümel
Bernd Blümel 2001 Verschlüsselung Gliederung 1. Symetrische Verschlüsselung 2. Asymetrische Verschlüsselung 3. Hybride Verfahren 4. SSL 5. pgp Verschlüsselung 111101111100001110000111000011 1100110 111101111100001110000111000011
MehrRemote Method Invocation
Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
Mehr4. Network Interfaces Welches verwenden? 5. Anwendung : Laden einer einfachen Internetseite 6. Kapselung von Paketen
Gliederung 1. Was ist Wireshark? 2. Wie arbeitet Wireshark? 3. User Interface 4. Network Interfaces Welches verwenden? 5. Anwendung : Laden einer einfachen Internetseite 6. Kapselung von Paketen 1 1. Was
Mehr620.900 Propädeutikum zur Programmierung
620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Lösung der Aufgabe (1/1) Lösung Aufgabe
MehrVirtual Private Network
Virtual Private Network Allgemeines zu VPN-Verbindungen WLAN und VPN-TUNNEL Der VPN-Tunnel ist ein Programm, das eine sichere Verbindung zur Universität herstellt. Dabei übernimmt der eigene Rechner eine
MehrRemote Tools. SFTP Port X11. Proxy SSH SCP. christina.zeeh@studi.informatik.uni-stuttgart.de
Remote Tools SSH SCP Proxy SFTP Port X11 christina.zeeh@studi.informatik.uni-stuttgart.de Grundlagen IP-Adresse 4x8 = 32 Bit Unterteilung des Adressraumes in Subnetze (Uni: 129.69.0.0/16) 129.69.212.19
MehrInnere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
MehrMobile und Verteilte Datenbanken
Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste
MehrGliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions
try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des
MehrProgrammieren I. Kapitel 15. Ein und Ausgabe
Programmieren I Kapitel 15. Ein und Ausgabe Kapitel 15: Ein und Ausgabe Ziel: einen kleinen Einblick in die vielfältigen IO Klassen geben Grober Überblick Klasse File zur Verwaltung von Dateien Random
MehrTCP/IP Socket Programmierung in C# (Ci sharp) Multicast und Broadcast
TCP/IP Socket Programmierung in C# (Ci sharp) Multicast und Broadcast AUFGABE: Schreiben Sie das Beispiel in JAVA um Multicast und Broadcast Bei allen TCP Verbindungen handelt es sich um bidirektionale,
MehrVerteilte 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,
Mehr4. 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
MehrConnectivity Everywhere
Connectivity Everywhere Ich bin im Netz, aber wie komme ich sicher nach hause? Tricks fuer mobile Internet Nutzer Überblick Sicherheitsprobleme beim mobilen IP-Nutzer Konventionelle Loesung: IP-Tunnel
MehrIMAP und POP. Internet Protokolle WS 12/13 Niklas Teich Seite 1
IMAP und POP Internet Protokolle WS 12/13 Niklas Teich Seite 1 IMAP UND POP Inhaltsverzeichnis» Post Office Protocol» Internet Message Access Protocol» Live Beispiel mit telnet Internet Protokolle WS 12/13
MehrThemen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht
Themen Transportschicht Internet TCP/UDP Transportschicht Schicht 4 des OSI-Modells Schicht 3 des TCP/IP-Modells Aufgaben / Dienste: Kommunikation von Anwendungsprogrammen über ein Netzwerk Aufteilung
Mehr188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
MehrTCP/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
MehrTeil 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
MehrHIT-Software Installieren und Starten der Netzwerklizenz als Download-Anwendung
HIT-Software Installieren und Starten der Netzwerklizenz als Download-Anwendung Grundsätzliches Die HIT-Software ist eines der drei Module des Lernkonzepts HEIDENHAIN Interactive Training für Steuerungen
MehrGefahren aus dem Internet 1 Grundwissen April 2010
1 Grundwissen Voraussetzungen Sie haben das Internet bereits zuhause oder an der Schule genutzt. Sie wissen, was ein Provider ist. Sie wissen, was eine URL ist. Lernziele Sie wissen, was es braucht, damit
MehrDialup Verbindung und Smarthost einsetzen
Dialup Verbindung und Smarthost einsetzen Problem...2 Ziel...2 Softwarevorausetzungen...2 Schritte vor der Umstellung...3 Einstellungen im IIS vornehmen...3 IIS neustarten...3 Seite 1 von 8 Problem In
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrEinrichtung eines E-Mail-Kontos bei Mac OS X Mail Stand: 03/2011
Einrichtung eines E-Mail-Kontos bei Mac OS X Mail Stand: 03/2011 1. Starten Sie Mail per Klick auf das Symbol im Dock. 2. Sie sehen die Ausgangsansicht von Mac OS X Mail. 3. Klicken Sie in der Fensterleiste
MehrGrundlagen 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
MehrEinrichtung von VPN-Verbindungen unter Windows NT
www.netzwerktotal.de Einrichtung von VPN-Verbindungen unter Windows NT Installation des VPN-Servers: Unter "Systemsteuerung / Netzwerk" auf "Protokolle / Hinzufügen" klicken. Jetzt "Point to Point Tunneling
MehrEinrichtung des Cisco VPN Clients (IPSEC) in Windows7
Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über
MehrHow-to: Mailrelay und Spam Filter. Securepoint Security System Version 2007nx
und Spam Filter Securepoint Security System Inhaltsverzeichnis 1 Konfigurierung eines Mailrelays... 4 1.1 Einrichten von Netzwerkobjekten... 4 1.2 Erstellen von Firewall-Regeln... 5 2 Einrichten von SMTP
MehrDieses HowTo darf nicht vervielfältigt oder veröffentlich werden ohne Einverständnis des Erstellers. Alle Angaben ohne Gewähr.
[HowTo] Einrichten von POP3 & SMTP am Client Autor(en): Michael Ruck Stand: 19.09.2008 Version: 1.0 Lotus Notes Client Versionen: 6.x, 7.x, 8.x Michael Ruck Dieses HowTo darf nicht vervielfältigt oder
Mehrphp 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.
MehrWie richten Sie Ihr Web Paket bei Netpage24 ein
Wie richten Sie Ihr Web Paket bei Netpage24 ein Eine kostenlose ebook Anleitung von Netpage24 - Webseite Information 1 E-Mail Bestätigung... 3 2 Ticketsystem... 3 3 FTP Konto anlegen... 4 4 Datenbank anlegen...
MehrEinführung in die Netzwerktechnik
Ich Falk Schönfeld Seit 8 Jahren bei eurogard GmbH Entwickler für Remoteserviceprodukte Kernkompetenz Linux Mail: schoenfeld@eurogard.de Telefon: +49/2407/9516-15 Ablauf: Was bedeutet Netzwerktechnik?
MehrSecurity. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung
4. Internet Verbindung 4.1 Einleitung Im Folgenden wird die Konfiguration der DFL-800 Firewall gezeigt. Sie konfigurieren einen Internet Zugang zum Provider mit dem Protokoll PPPoE. In der Firewallrichtlinie
Mehr