123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /*
- * 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 netz.model;
-
- 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.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import ohmlogger.OhmLogger;
-
- /**
- *
- * @author chris
- */
- public class ServerRunnable implements Runnable
- {
- private static Logger lg = OhmLogger.getLogger();
- private ServerSocket sSocket;
- private Socket s;
- private ExecutorService eService;
-
- ServerRunnable(ServerSocket sSocket) throws IOException
- {
- this.sSocket = sSocket;
-
- eService = Executors.newSingleThreadExecutor();
- lg.info("Server: Warte auf Verbindung ...");
- this.start();
-
- }
-
- public synchronized void start()
- {
- eService.submit(this);
- this.notifyAll();
- lg.info("Thread startet");
- }
- @Override
- public void run()
- {
- try
- {
- 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();
- }
- catch (IOException ex)
- {
- Logger.getLogger(ServerRunnable.class.getName()).log(Level.SEVERE, null, ex);
- }
-
- }
- }
|