title: Java Socket - send many message
body: <p>I have two simple classes:</p>
  
  <p><strong>Client:</strong></p>
  
  <pre><code>public static void main(String[] args) throws IOException {
          InetAddress addr = InetAddress.getByName(null);
          Socket socket = null;
  
          try {
              socket = new Socket(addr, 1050);
  
              InputStreamReader isr = new InputStreamReader(socket.getInputStream());
              in = new BufferedReader(isr);
  
              OutputStreamWriter osw = new OutputStreamWriter( socket.getOutputStream());
              BufferedWriter bw = new BufferedWriter(osw);
              out = new PrintWriter(bw, false);
  
              stdIn = new BufferedReader(new InputStreamReader(System.in));
              String userInput;
  
              // read user input
              while (true) {
                  userInput = stdIn.readLine();
  
                  System.out.println("Send: " + userInput);
                  out.println(userInput);
                  out.flush();
  
                  String line = in.readLine();
                  while(line != null){
                      System.out.println(line);
                      line = in.readLine();
                  }
  
                  System.out.println("END");
              }
          }
          catch (UnknownHostException e) {
              // ...
          } catch (IOException e) {
              // ...
          }
  
          // close
          out.close();
          stdIn.close();
          socket.close();
      }
  </code></pre>
  
  <p><strong>Server:</strong></p>
  
  <pre><code>OutputStreamWriter osw = new OutputStreamWriter(socket.getOutputStream());
                  BufferedWriter bw = new BufferedWriter(osw);
                  PrintWriter out = new PrintWriter(bw, /*autoflush*/true);
  private void sendMessage(String msg1, String msg2) {
          out.println(msg1);
  
          // empy row
          out.println("");
  
          out.println(msg2);
      }
  </code></pre>
  
  <p>The user enters a message, and this is sent to the server. Then, the server responds with N messages.
  After the first request, the client stops and is never printed the word "END".
  How do I send multiple messages at different times, with only one socket connection?</p>