KGS Issue - Client Memory Consumption / Single Client

Here is the Java code advertised on KGS Issue - Client Memory Consumption.

 import java.io.BufferedReader;
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
 import java.io.File;
 import java.io.FileReader;
 import java.io.FileWriter;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.io.IOException;
 import java.net.InetAddress;
 import java.net.ServerSocket;
 import java.net.Socket;
 import javax.swing.JFrame;
 import javax.swing.JTextArea;
 public class SingleClient {
     static JFrame jframe;
     static JTextArea jtextarea;
     static int portNumber = 29753;
     static ServerSocket serverSocket;
     static Thread mySimpleServer;
     static void startServer() {
         try {
             serverSocket = new ServerSocket(portNumber);
             mySimpleServer = new Thread() {
                 public void run() {
                     Socket clientSocket = null;
                     for(;;) {
                         try {
                             // here the thread waits for the client
                             clientSocket = serverSocket.accept();
                             clientSocket.setSoLinger(false, 0);
                             System.out.println("serverSocket gets input");
                             DataInputStream in = new DataInputStream(clientSocket.getInputStream());
                             BufferedReader b = new BufferedReader(new InputStreamReader(in));
                             String message = b.readLine();
                             System.out.println("got input message from client: "+message);
                             if (jtextarea!=null) {
                                 jtextarea.setText(jtextarea.getText()+"\n"+message);
                                 jtextarea.setCaretPosition(jtextarea.getText().length());
                             }
                         }
                         catch(Exception e)  {
                             try {
                                 serverSocket.close();
                             } catch(Exception e2)  {}
                             System.out.println(e);
                             System.exit(1);
                         }
                         finally {
                             try {
                                 clientSocket.close();
                             } catch(Exception e)  {}
                         }
                     }
                 }
             };
             mySimpleServer.start();
         }
         catch(Exception e)  {
             System.out.println(e);
             System.exit(1);
         }
     }
     static void startUI() {
         jframe = new JFrame();
         jframe.addWindowListener(new java.awt.event.WindowAdapter() {
                 public void windowClosing(java.awt.event.WindowEvent evt) {
                     // new File(portFile).delete();
                     System.exit(0);
                 }
         });
         jtextarea = new JTextArea(5,10);
         jframe.getContentPane().add(new javax.swing.JScrollPane(jtextarea));
         jframe.pack();
         jframe.setVisible(true);
     }
     static void sendMessageToServer(Socket socket, String message) {
         try {
             DataOutputStream out = new DataOutputStream(socket.getOutputStream());
             out.writeBytes(message);
             out.flush();
             out.close();
             socket.close();
             System.out.println("try to write message <"+message+"> to server " + socket);
         }
         catch(Exception e)  {
             System.out.println(e);
             System.exit(1);
         }
     }
     public static void main(String[] args) throws IOException {
         Socket serverConnectionSocket;
         try {
             serverConnectionSocket = new Socket(InetAddress.getByName("127.0.0.1"), portNumber);
         } catch(IOException e) {
             // could not connect to socket
             startUI();
             startServer();
             serverConnectionSocket = new Socket(InetAddress.getByName("127.0.0.1"), portNumber);
         }
         sendMessageToServer(serverConnectionSocket, args[0]);
         // end only this thread: System.exit(0);
     }
 }

This is a copy of the living page "KGS Issue - Client Memory Consumption / Single Client" at Sensei's Library.
(OC) 2011 the Authors, published under the OpenContent License V1.0.
[Welcome to Sensei's Library!]
StartingPoints
ReferenceSection
About