title: How can read input from a Client in a simple HTTP Web Server in Java?
body: <p>I am trying to create a simple HTTP web server in Java. I'm just taking this in baby steps so it's super simplistic. I'm trying to make it so I can read simple input from the Client and output anything from the Server when they are both connected. </p>
  
  <p>After searching around on tutorials on websites, this is what I've done so far:</p>
  
  <pre><code>public class Server
  {
      public static void main(String[] args) throws Exception
      {
          boolean listening = true;
          ServerSocket server = null;
          int port = 2222;
          try
          {
              System.out.println("Server binding to port " + port);
              server = new ServerSocket(port);
          }
          catch(Exception e)
          {
              System.out.println("Error: " + e);
              System.exit(1);
          }
  
          System.out.println("Server successfully binded to port " + port);
  
          while(listening)
          {
              System.out.println("Attempting to connect to client");
              Socket client = server.accept();
              System.out.println("Successfully connected to client");
              new ServerThread(client).start() ;
          }
  
          server.close();
      }
  }
  
  public class ServerThread extends Thread
  {
      private Socket socket = null ;
      public ServerThread(Socket s)
      {
          this.socket = s ;
      }
  
      public void run()
      {       
          InputStream in = socket.getInputStream() ;
          OutputStream out = socket.getOutputStream() ;
          byte [] message, reply;
          while((in.read(message))
          {
              out.write(reply) ;
          }
          in.close() ;
          out.close() ;
          socket.close() ;    
      }
  }
  </code></pre>
  
  <p>It binds and then hangs after attempting to connect to the client. This is because I'm not sure what you do in the while loop in the ServerThread and what you do with the message and reply variables >_&lt; It's been a long time since I've done Java so take it easy on me!</p>