You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ClientRunnable.java 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package netz.model;
  7. import java.io.BufferedReader;
  8. import java.io.IOException;
  9. import java.io.InputStream;
  10. import java.io.InputStreamReader;
  11. import java.io.OutputStream;
  12. import java.io.OutputStreamWriter;
  13. import java.io.PrintWriter;
  14. import java.net.ServerSocket;
  15. import java.net.Socket;
  16. import java.util.concurrent.ExecutorService;
  17. import java.util.concurrent.Executors;
  18. import java.util.logging.Level;
  19. import java.util.logging.Logger;
  20. import ohmlogger.OhmLogger;
  21. /**
  22. *
  23. * @author chris
  24. */
  25. public class ClientRunnable implements Runnable
  26. {
  27. private static Logger lg = OhmLogger.getLogger();
  28. private String ip_adresse;
  29. private int port;
  30. private ExecutorService eService;
  31. public ClientRunnable(String IP_ADRESSE, int PORT) throws IOException
  32. {
  33. this.ip_adresse = IP_ADRESSE;
  34. this.port = PORT;
  35. eService = Executors.newSingleThreadExecutor();
  36. this.start();
  37. }
  38. public synchronized void start()
  39. {
  40. eService.submit(this);
  41. this.notifyAll();
  42. lg.info("Thread startet");
  43. }
  44. @Override
  45. public void run()
  46. {
  47. try
  48. {
  49. lg.info("Client: verbinde ...");
  50. Socket s = new Socket(ip_adresse, port); // Achtung: blockiert!
  51. lg.info("Client: Verbindung hergestellt");
  52. InputStream iStream = s.getInputStream();
  53. OutputStream oStream = s.getOutputStream();
  54. InputStreamReader isr = new InputStreamReader(iStream, "UTF-8");
  55. OutputStreamWriter osr = new OutputStreamWriter(oStream, "UTF-8");
  56. BufferedReader in = new BufferedReader(isr);
  57. //BufferedWriter out = new BufferedWriter(osr);
  58. PrintWriter out = new PrintWriter(osr);
  59. lg.info("Client: Stream initialisiert");
  60. out.println("Hallo Du Server Du - ich bin der client");
  61. out.flush(); // wirklich absenden!!
  62. lg.info("Client: Nachricht versendet");
  63. String quittung = in.readLine(); // Achtung blockiert
  64. lg.info("Client: Quittung empfangen");
  65. System.out.println("Client: Quittung EMPFANGEN - " + quittung);
  66. out.close();
  67. in.close();
  68. }
  69. catch (Exception ex)
  70. {
  71. Logger.getLogger(ServerRunnable.class.getName()).log(Level.SEVERE, null, ex);
  72. }
  73. }
  74. }