TCP und UDP Sockets in Java

Ähnliche Dokumente
Java und Netzwerkkommunikation

Netzprogrammierung Socketkommunikation im Internet

Referat: Netzwerkprogrammierung in Java

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

Transmission Control Protocol (TCP)

1. Netzwerkprogrammierung für mobile Geräte

Netzwerkprogrammierung & Threads

2 Verbindungslose Kommunikation mit UDP

Socket-Programmierung unter Java

Client-Server TCP/IP - Kodierung

Rechnernetze II SS Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Informatik B. Vorlesung 17 Netzwerkprogrammierung. Dr. Ralf Kunze

Netzprogrammierung: Kommunikation über Sockets

1. Netzwerkprogrammierung für mobile Geräte

Socket-Programmierung unter Java

Kapitel 4: Design von Client/Server-Software. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes

3.5 SSL Verbindungen. JSSE (Java Secure Socket Extension) import javax.net.ssl.* Wesentliche Pattern) Änderung im Client Programm: (Factory.

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

Networking. JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H.

Client-Server TCP/IP - Kodierung

B.2 Das Java Ein-/Ausgabesystem

Java I/O, Serialisierung und Netzwerkprogrammierung

Netzwerkprogrammierung & Threads

Client-Server TCP/IP - Kodierung

Jan Distel. Im Rahmen der Veranstaltung Fortgeschrittene Programmierung in Java

Netzwerkprogrammierung

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

Verteilte Systeme - Java Networking (Sockets) -

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

Verteilte Systeme - 1. Übung

UDP Datagramme und Sockets

Netzwerkprogrammierung & Threads

Softwarepraktikum Sommersemester 2006

Kommentare, Client-Server, Protokolle

Programmieren 2 12 Netzwerke

Netzwerkprogrammierung mit Java

Verwendung der Gruppenkommunikation JGroups

1. Mit dem Socket zum Server

3 Netzwerkprogrammierung in Java

Advanced Network Programming

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

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

Themen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht

Praktikum Datenbanken und verteilte Systeme Sommersemester 2015

Serielle Kommunikation - Kodierung

Programmieren II. Team. Dr. Olaf Schenk Curzio Basso, Michael Hagemann, Odette Häfeli, Philipp Georg Matthias Tröndle, Marcel Arheit

4. Thread- und Netzwerk- Programmierung

Socket-Programmierung in Java

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

Internetanwendungstechnik (Übung)

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze

Rechnernetze und verteilte Systeme Programmieraufgabe

CS1024 Internetbasierte Systeme

Programmiermethodik. Übung 10

Programmierzertifikat Objekt-Orientierte Programmierung mit Java

Netzwerk-Programmierung in C

Handbuch konsultieren!

Kommunikation und Synchronisation von Prozessen

Projektaufgabe Peer-To-Peer Chat Programm

Programmiermethodik. Übung 13

Beispiel Time Client/Server

15 Ein-/Ausgabe Kommunikation. Dateien. Schreiben und Lesen von Dateien. Sockets. Übungsaufgaben

Netzprogrammierung: URL-Schemata

5.1 Charakterisierung von Netzwerken

Transkript:

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; Server: accept Datenaustausch Klient/Server: read/write Ende der Kommunikation Klient/Server: close 11.04.07 Techniken und Dienste des Internets 2

Sockets in Java java.net.socket Ein Socket ist ein Endpunkt einer Verbindung. Socket wird gebunden an eine Adresse und Port auf dem entferntem Rechner und an ein Port auf dem lokalen Rechner Konstruktor Socket socket = new Socket("www.vs.uni-kassel.de", 80); Nur für Klientenseite Methoden public InputStream getinputstream() public OutputStream getoutputstream() public void close() 11.04.07 Techniken und Dienste des Internets 3

Beispiel Programm das ein paar Daten zu www.spiegel.de schickt und die Antwort auf der Konsole ausgibt (ohne Exception-Verarbeitung) Socket socket = new Socket("www.spiegel.de",80) OutputStream out = socket.getoutputstream(); InputStream in = socket.getinputstream(); String smessage = "GET / HTTP/1.1\nHost:www.spiegel.de\n\n"; byte[] aby = smessage,getbytes(); for (int i=0;i<aby.length;i++) out.write(aby[i]); out.flush(); int read = in.read(); while(read!=-1) { } System.out.print(read); read=in.read(); in.close(); out.close(); socket.close(); 11.04.07 Techniken und Dienste des Internets 4

Serverseite in Java java.net.serversocket Warten auf Verbindungen Konstruktor ServerSocket ssocket = new ServerSocket(1000); Methoden public Socket accept() 11.04.07 Techniken und Dienste des Internets 5

Beispielserver Echoserver Empfangenen Daten auf Konsole ausgeben und zurückschicken ServerSocket ssocket = new ServerSocket(7); Socket socket = ssocket.accept(); InputStream in = socket.getinputstream(); OutputStream out = socket.getoutputstream(); int read = in.read(); while(read!=-1) { out.write(read); System.out.print(read); read = in.read(); } out.flush(); in.close();out.close();socket.close();ssocket.close(); 11.04.07 Techniken und Dienste des Internets 6

UDP-Sockets Socket binden Klient/Server: bind Senden und empfangen Klient/Server: send, receive Sockets schießen Klient/Server: close 11.04.07 Techniken und Dienste des Internets 7

DatagramSocket Konstruktoren Gebunden an beliebigen Port: DatagramSocket() sonst: DatagramSocket(int port) Verbindung void send(datagrampacket p) Die Zieladresse steht im DatagramPacket void receive(datagrampacket p) Socket schliessen void close() 11.04.07 Techniken und Dienste des Internets 8

DatagramPacket Konstruktoren DatagramPacket(byte[] buf, int length) Paket der Länge length konstruieren DatagramPacket(byte[] buf, int length, InetAddress address, int port) Paket konstruiren und adressieren set- und get-methoden void setdata(byte buf) byte[] getdata() void setaddress(inetaddress iaddr) InetAddress getaddress() 11.04.07 Techniken und Dienste des Internets 9

UDP-Beispiel Server wartet auf ein Paket mit Zeichenkette und antwortet mit einer anderen Zeichenkette 11.04.07 Techniken und Dienste des Internets 10

UDP-Beispiel: Server public UDPPongServer(int portno) throws java.io.ioexception { byte[] indata = new byte[1024]; // Platz für Pakete vorbereiten byte[] outdata = new byte[1024]; String message; DatagramSocket socket = new DatagramSocket(portNo); // Socket binden while (true) { // Ein Paket empfangen DatagramPacket in = new DatagramPacket(inData,inData.length); socket.receive(in); // Infos ermitteln und ausgeben InetAddress senderip = in.getaddress(); int senderport = in.getport(); message=new String(in.getData(),0,in.getLength()); System.out.println("Got "+message+" from "+senderip+","+senderport); // Antwort erzeugen outdata = "Pong".getBytes(); DatagramPacket out = new DatagramPacket(outData,outData.length, senderip,senderport); // Antwort senden socket.send(out); } } 11.04.07 Techniken und Dienste des Internets 11

UDP-Beispiel: Klient public UDPPingClient(int portno) throws java.io.ioexception { byte[] indata = new byte[1024]; byte[] outdata = new byte[1024]; String message; // Socket erzeugen DatagramSocket socket = new DatagramSocket(); // Paket bauen und adressieren InetAddress serverip = InetAddress.getByName("localhost"); outdata = "Ping".getBytes(); DatagramPacket out = new DatagramPacket(outData,outData.length, serverip,portno); // Paket senten socket.send(out); // Antwort empfangen und ausgeben. DatagramPacket in = new DatagramPacket(inData,inData.length); socket.receive(in); message=new String(in.getData(),0,in.getLength()); System.out.println("Got "+message); // Socket schliessen socket.close(); } 11.04.07 Techniken und Dienste des Internets 12