title: While loop fails when socket reading input in java
body: <p>so I am having an issue with reading input from a client.  It works completely fine whenever I am using my if statements without the while statements wrapped around it in the server class.  Could anybody point me to why this may be failing?</p>
  
  <p>Server class:</p>
  
  <pre><code>import java.io.*;
  import java.net.*;
  
  public class Server {
  
      public static void main(String[] args) throws Exception
      {
          Server myServer = new Server();
          myServer.run();
      }
  
      public void run() throws Exception
      {
  
          //Initializes the port the serverSocket will be on
          ServerSocket serverSocket = new ServerSocket(9999);
          System.out.println("The Server is waiting for a client on port 9999");
          //Accepts the connection for the client socket
          Socket socket = serverSocket.accept();
  
          InputStreamReader ir = new InputStreamReader(socket.getInputStream());
          BufferedReader br = new BufferedReader(ir);
          String message = br.readLine();
          //Confirms that the message was received
          System.out.println(message);
  
      //When this while is here.  The match fails and it goes to the else statement.
      //Without the while statement it will work and print "Received our hello message." 
      //when the client says HELLO.
  
       while(message != null)
       {
              if(message.equals("HELLO"))
              {
                  PrintStream ps = new PrintStream(socket.getOutputStream());
                  ps.println("Received our hello message.");
              }
              else
              {
                  PrintStream ps = new PrintStream(socket.getOutputStream());
                  ps.println("Did not receive your hello message");
              }
          }
      }
  }
  </code></pre>
  
  <p>Client class:</p>
  
  <pre><code>import java.io.*;
  import java.net.*;
  import java.util.*;
  
  public class Client {
  
      public static void main(String[] args) throws Exception
      {
          Client myClient = new Client();
          myClient.run();
      }
  
      public void run() throws Exception
      {
          Socket clientSocket = new Socket("localhost", 9999);
          //Sends message to the server
          PrintStream ps = new PrintStream(clientSocket.getOutputStream());
          Scanner scan = new Scanner(System.in);
          String cMessage = scan.nextLine();
          ps.println(cMessage);
          //Reads and displays response from server
          InputStreamReader ir = new InputStreamReader(clientSocket.getInputStream());
          BufferedReader br = new BufferedReader(ir);
          String message = br.readLine();
          System.out.println(message);        
      }
  
  }
  </code></pre>