title: Program stop working when try to read input stream
body: <p>I have a Java Server and one(or more) Android Clients. For now I want them to communicate simply with strings. When i write from android I can get the data in Java Server, but when I try to get the answer from server the Android application stop working. The codes is reported below:</p>
  
  <p><strong>Java Server</strong>:</p>
  
  <pre><code>public class Server {
  
    private static int port=12346, maxConnections=0;
    // Listen for incoming connections and handle them
    public static void main(String[] args) {
      int i=0;
      try{
        ServerSocket listener = new ServerSocket(port);
        Socket server;
        while((i++ &lt; maxConnections) || (maxConnections == 0)){
          doComms connection;
          server = listener.accept();
          String end = server.getInetAddress().toString();
          System.out.println("\n"+end+"\n");
          doComms conn_c= new doComms(server);
          Thread t = new Thread(conn_c);
          t.start();
        }
      } catch (IOException ioe) {
        System.out.println("IOException on socket listen: " + ioe);
        ioe.printStackTrace();
      }
    }
  
  }
  
  class doComms implements Runnable {
      private Socket server;
      private String line,input;
  
      public doComms(Socket server) {
        this.server=server;
      }
  
      @SuppressWarnings("deprecation")
      public void run () {
  
        input="";
  
  
        try {
          // Get input from the client
          DataInputStream in = new DataInputStream (server.getInputStream());
          PrintWriter out = new PrintWriter(new BufferedWriter(
                  new OutputStreamWriter(server.getOutputStream())),
                           true);
  
          while((line = in.readLine()) != null &amp;&amp; !line.equals(".")) {
  
              input=input + line;
          }
  
          JOptionPane.showMessageDialog(null, input);
          out.println("Enviado");
  
          server.close();
        } catch (IOException ioe) {
          System.out.println("IOException on socket listen: " + ioe);
          ioe.printStackTrace();
        }
      }
  </code></pre>
  
  <p>And Android client's code (it's called every time a button is pressed inside onClick method):</p>
  
  <pre><code>public String enviaMensagem(){
          String resposta="";
          new Thread(new ClientThread()).start();
  
          Socket socket = null;
          DataOutputStream dataOutputStream = null;
          DataInputStream dataInputStream = null;
  
  
          try {
                socket = new Socket(ip, port);
                dataOutputStream = new DataOutputStream(socket.getOutputStream());
                dataInputStream = new DataInputStream(socket.getInputStream());
                dataOutputStream.writeUTF(input.getText().toString());
                resposta = dataInputStream.readUTF();
               } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
               } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
               }
               finally{
                if (socket != null){
                 try {
                  socket.close();
                 } catch (IOException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
                 }
                }
  
                if (dataOutputStream != null){
                 try {
                  dataOutputStream.close();
                 } catch (IOException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
                 }
                }
  
                if (dataInputStream != null){
                 try {
                  dataInputStream.close();
                 } catch (IOException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
                 }
                }
               }
  
  
          return resposta;
      }
  </code></pre>