Applet als Server - Problem der Darstellung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Applet als Server - Problem der Darstellung

    Übertragung von Strings von einem Client - Programm zu einem Server - Programm(Applet)


    Hallo zusammen,
    ich habe leider mit den unten aufgeführten Programm folgendes Problem:
    Die Datenübertragung funktioniert nur einmalig, d.h. die von mir gesendeten Strings werden vom Applet in der Textarea nur bei der ersten Übertragung dargestellt.
    Ich habe ein ähnliches Server - Programm als reine Java Anwendung geschrieben (also kein Applet) und da funkioniert die Übertragung einwandfrei.
    Leider kann ich den Fehler nicht finden. Hat da jemand eine Idee?

    Quellcode

    1. Applet:
    2. import java.applet.*;
    3. import java.awt.*;
    4. import java.net.*;
    5. import java.io.*;
    6. public class ServerApplet extends Applet implements Runnable
    7. {
    8. String news = "";
    9. TextArea tf = new TextArea(10,20);
    10. volatile Thread th = null;
    11. ServerSocket serverSocket;
    12. Socket server;
    13. InputStream in;
    14. InputStreamReader ins;
    15. BufferedReader br;
    16. public void init()
    17. {
    18. System.out.println("Java-Konsole: init... !");
    19. setBackground(Color.red);
    20. setLayout(new FlowLayout());
    21. add(tf);
    22. }
    23. public void start()
    24. {
    25. Thread th = new Thread(this);
    26. th.start();
    27. }
    28. public void run()
    29. {
    30. System.out.println("im Thread");
    31. try
    32. {
    33. serverSocket = new ServerSocket(4444);
    34. server = serverSocket.accept();
    35. in = server.getInputStream();
    36. ins = new InputStreamReader(in);
    37. br = new BufferedReader(ins);
    38. server.setSoTimeout( 60000 ); // max. 1 Minute
    39. if(server.isBound())
    40. System.out.println("Bound");
    41. else
    42. System.out.println("Not Bound");
    43. while (true) //th != null
    44. {
    45. news=br.readLine().trim();
    46. tf.setText(news);
    47. }
    48. } catch (Exception e)
    49. {
    50. System.err.println(e.toString());
    51. System.exit(1);
    52. }
    53. }
    54. public void paint(Graphics g)
    55. {
    56. g.drawString(news, 150, 25);
    57. }
    58. public void stop()
    59. {
    60. System.out.println("Java-Konsole: stop... !");
    61. th = null;
    62. try
    63. {
    64. in.close();
    65. server.close();
    66. }
    67. catch (Exception e)
    68. {
    69. System.err.println(e.toString());
    70. System.exit(1);
    71. }
    72. }
    73. }
    74. Client:
    75. import java.net.*;
    76. import java.io.*;
    77. class SocketSchreiben implements Runnable
    78. {
    79. public void run()
    80. {
    81. while(true)
    82. {
    83. try
    84. {
    85. Socket sock = new Socket("127.0.0.1", 4444);
    86. OutputStream out = sock.getOutputStream();
    87. OutputStreamWriter outw = new OutputStreamWriter(out);
    88. BufferedWriter bw = new BufferedWriter(outw);
    89. sock.setSoTimeout(300);
    90. BufferedReader conin = new BufferedReader(new InputStreamReader(System.in));
    91. String line="";
    92. while(true)
    93. {
    94. line = conin.readLine();
    95. if(line.equalsIgnoreCase("Quit"))
    96. break;
    97. bw.write(line);
    98. bw.flush();
    99. }
    100. out.close();
    101. sock.close();
    102. } catch(IOException e)
    103. {
    104. System.err.println(e.toString());
    105. System.exit(1);
    106. }
    107. }
    108. }
    109. }
    110. public class MainSocketSchreibenThread
    111. {
    112. public static void main (String args[])
    113. {
    114. Thread client = new Thread(new SocketSchreiben());
    115. client.start();
    116. }
    117. }
    Alles anzeigen


    Vielen Dank .... :D