From c4da2b42d416735cb1912ae01b9b99a73a7a68e2 Mon Sep 17 00:00:00 2001 From: Gerhard Switalski Date: Sat, 15 Dec 2018 10:10:59 +0100 Subject: [PATCH] Initial Commit --- src/chatprogramm/Client.java | 76 ++++++++++++++++++++++++++++++++++++ src/chatprogramm/Server.java | 76 ++++++++++++++++++++++++++++++++++++ src/chatprogramm/Start.java | 70 +++++++++++++++++++++++++++++++++ 3 files changed, 222 insertions(+) create mode 100644 src/chatprogramm/Client.java create mode 100644 src/chatprogramm/Server.java create mode 100644 src/chatprogramm/Start.java diff --git a/src/chatprogramm/Client.java b/src/chatprogramm/Client.java new file mode 100644 index 0000000..20d91ce --- /dev/null +++ b/src/chatprogramm/Client.java @@ -0,0 +1,76 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package chatprogramm; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.net.Socket; +import java.util.logging.Logger; + +/** + * Builder Class + * @author le + */ +public class Client +{ + private static final Logger lg = Logger.getLogger("netz"); + private static final int PORT = 35000; + private static final String IP_ADRESSE = "127.0.0.1"; + + public Client() throws IOException + { + lg.info("Client: verbinde ..."); + Socket s = new Socket(IP_ADRESSE, PORT); // Achtung: blockiert! + lg.info("Client: Verbindung hergestellt"); + InputStream iStream = s.getInputStream(); + OutputStream oStream = s.getOutputStream(); + + InputStreamReader isr = new InputStreamReader(iStream, "UTF-8"); + OutputStreamWriter osr = new OutputStreamWriter(oStream, "UTF-8"); + + BufferedReader in = new BufferedReader(isr); + //BufferedWriter out = new BufferedWriter(osr); + PrintWriter out = new PrintWriter(osr); + + lg.info("Client: Stream initialisiert"); + + out.println("Hallo Du Server Du - ich bin der client"); + out.flush(); // wirklich absenden!! + + lg.info("Client: Nachricht versendet"); + + String quittung = in.readLine(); // Achtung blockiert + lg.info("Client: Quittung empfangen"); + + System.out.println("Client: Quittung EMPFANGEN - " + quittung); + + + + out.close(); + in.close(); + } + + /** + * @param args the command line arguments + */ + public static void main(String[] args) + { + try + { + new Client(); + } + catch (IOException ex) + { + lg.severe(ex.toString()); + } + } +} diff --git a/src/chatprogramm/Server.java b/src/chatprogramm/Server.java new file mode 100644 index 0000000..4cd3017 --- /dev/null +++ b/src/chatprogramm/Server.java @@ -0,0 +1,76 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package chatprogramm; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.logging.Logger; + +/** + * Builder Class + * @author le + */ +public class Server +{ + private static final Logger lg = Logger.getLogger("netz"); + private static final int PORT = 35000; + + public Server() throws IOException + { + ServerSocket sSocket = new ServerSocket(PORT); + lg.info("Server: Warte auf Verbindung ..."); + Socket s = sSocket.accept(); // Achtung: blockiert! + lg.info("Server: Verbindung akzeptiert"); + InputStream iStream = s.getInputStream(); + OutputStream oStream = s.getOutputStream(); + + InputStreamReader isr = new InputStreamReader(iStream, "UTF-8"); + OutputStreamWriter osr = new OutputStreamWriter(oStream, "UTF-8"); + + BufferedReader in = new BufferedReader(isr); + //BufferedWriter out = new BufferedWriter(osr); + PrintWriter out = new PrintWriter(osr); + + lg.info("Server: Stream initialisiert"); + lg.info("Server: warte auf Nachricht ..."); + + String nachricht = in.readLine(); // Achtung blockiert + lg.info("Server: Nachricht empfangen"); + + System.out.println("Server: NACHRICHT EMPFANGEN - " + nachricht); + + out.println("Server -> ich habe die Nachricht erhalten"); + lg.info("Server: Quittung versendet"); + + out.flush(); // wirklich absenden!! + + out.close(); + in.close(); + } + + /** + * @param args the command line arguments + */ + public static void main(String[] args) + { + try + { + new Server(); + } + catch (IOException ex) + { + lg.severe(ex.toString()); + } + } +} diff --git a/src/chatprogramm/Start.java b/src/chatprogramm/Start.java new file mode 100644 index 0000000..8a5ff57 --- /dev/null +++ b/src/chatprogramm/Start.java @@ -0,0 +1,70 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package chatprogramm; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; + +/** + * Builder Class + * @author le + */ +public class Start +{ + public Start(String urlString, String dateiname) throws MalformedURLException, IOException + { + URL oUrl = new URL(urlString + "/" + dateiname); + InputStream iStream = oUrl.openStream(); + BufferedInputStream in = new BufferedInputStream(iStream); + + String tmpVerzeichnis = System.getProperty("java.io.tmpdir"); + String ausgabeDateiname = tmpVerzeichnis + File.separator + dateiname; + + FileOutputStream fos = new FileOutputStream(ausgabeDateiname); + BufferedOutputStream out = new BufferedOutputStream(fos); + + int wert = 0; + + while ( (wert = in.read()) >= 0) + { + out.write(wert); + } + in.close(); + out.close(); // flush! + System.out.println("Datei " + ausgabeDateiname + " erfolgreich erstellt"); + + } + + /** + * @param args the command line arguments + */ + public static void main(String[] args) + { + if (args.length != 2) + { + System.err.println("2 Aufrufparameter nötig: URL-String Dateiname"); + } + else + { + try + { + new Start(args[0], args[1]); + } + catch (Exception ex) + { + System.err.println(ex); + ex.printStackTrace(); + } + } + } +}