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.

Transmitter.java 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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 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.Observable;
  17. import java.util.logging.Level;
  18. import java.util.logging.Logger;
  19. import logger.OhmLogger;
  20. /**
  21. *
  22. * @author Apollo
  23. */
  24. public class Transmitter extends Observable implements Runnable
  25. {
  26. private static final Logger lg = OhmLogger.getLogger();
  27. private static final int PORT = 35000;
  28. private static final String IP_ADRESSE = "127.0.0.1";
  29. int modus;
  30. public Transmitter(int modus)
  31. {
  32. }
  33. @Override
  34. public void run()
  35. {
  36. if(modus == 0)
  37. {
  38. try
  39. {
  40. server();
  41. }
  42. catch (IOException ex)
  43. {
  44. Logger.getLogger(Transmitter.class.getName()).log(Level.SEVERE, null, ex);
  45. }
  46. }
  47. else if(modus == 1)
  48. {
  49. try
  50. {
  51. client();
  52. }
  53. catch (IOException ex)
  54. {
  55. Logger.getLogger(Transmitter.class.getName()).log(Level.SEVERE, null, ex);
  56. }
  57. }
  58. }
  59. public void client() throws IOException
  60. {
  61. lg.info("Client: verbinde ...");
  62. Socket s = new Socket(IP_ADRESSE, PORT); // Achtung: blockiert!
  63. lg.info("Client: Verbindung hergestellt");
  64. InputStream iStream = s.getInputStream();
  65. OutputStream oStream = s.getOutputStream();
  66. InputStreamReader isr = new InputStreamReader(iStream, "UTF-8");
  67. OutputStreamWriter osr = new OutputStreamWriter(oStream, "UTF-8");
  68. BufferedReader in = new BufferedReader(isr);
  69. //BufferedWriter out = new BufferedWriter(osr);
  70. PrintWriter out = new PrintWriter(osr);
  71. lg.info("Client: Stream initialisiert");
  72. out.println("Hallo Du Server Du - ich bin der client");
  73. out.flush(); // wirklich absenden!!
  74. lg.info("Client: Nachricht versendet");
  75. String quittung = in.readLine(); // Achtung blockiert
  76. lg.info("Client: Quittung empfangen");
  77. System.out.println("Client: Quittung EMPFANGEN - " + quittung);
  78. out.close();
  79. in.close();
  80. }
  81. public void server() throws IOException
  82. {
  83. ServerSocket sSocket = new ServerSocket(PORT);
  84. lg.info("Server: Warte auf Verbindung ...");
  85. Socket s = sSocket.accept(); // Achtung: blockiert!
  86. lg.info("Server: Verbindung akzeptiert");
  87. InputStream iStream = s.getInputStream();
  88. OutputStream oStream = s.getOutputStream();
  89. InputStreamReader isr = new InputStreamReader(iStream, "UTF-8");
  90. OutputStreamWriter osr = new OutputStreamWriter(oStream, "UTF-8");
  91. BufferedReader in = new BufferedReader(isr);
  92. //BufferedWriter out = new BufferedWriter(osr);
  93. PrintWriter out = new PrintWriter(osr);
  94. lg.info("Server: Stream initialisiert");
  95. lg.info("Server: warte auf Nachricht ...");
  96. String nachricht = in.readLine(); // Achtung blockiert
  97. lg.info("Server: Nachricht empfangen");
  98. System.out.println("Server: NACHRICHT EMPFANGEN - " + nachricht);
  99. out.println("Server -> ich habe die Nachricht erhalten");
  100. lg.info("Server: Quittung versendet");
  101. out.flush(); // wirklich absenden!!
  102. out.close();
  103. in.close();
  104. }
  105. }