title: Java Socket Server hangs while reading data
body: <p>I have a PHP file talking to a Java socket server, and when I send data over, my java server gets stuck (hung, frozen) on <code>inputLine = in.readLine()</code>. I've debugged and found that it's only when I read data, this happens.</p>
  
  <p>Here's my java method for the server:</p>
  
  <pre><code>public void start_echo_server(int port){
      main.getProxy().getConsole().sendMessage(new TextComponent(ChatColor.GOLD + "STARTING SOCKET LISTENER (echo)"));
  
      int portNumber = port;
      try {
          ServerSocket serverSocket = new ServerSocket(portNumber);
          Socket clientSocket = serverSocket.accept();
          // accepted the connection
          main.getProxy().getConsole().sendMessage(new TextComponent(ChatColor.GOLD + "ACCEPTED"));
          // in stream
          BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
          // outstream
          PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
  
          String inputLine;
          StringBuilder sb = new StringBuilder();
          while ((inputLine = in.readLine()) != null) {
              sb.append(inputLine);
          }
          String final_line = sb.toString();
          main.getProxy().getConsole().sendMessage(new TextComponent(ChatColor.GOLD + "IN: " + final_line));
          //String final_ret = parser.parse_message(final_line);
          //main.getProxy().getConsole().sendMessage(new TextComponent(ChatColor.GOLD + "FINAL: " + final_ret));
          out.println(final_line);
          in.close();
          out.close();
          serverSocket.close();
      } catch (IOException e) {
          e.printStackTrace();
      }
  }
  </code></pre>
  
  <p>And here's my PHP file:</p>
  
  <pre><code>    &lt;?php
    if( isset($_POST['username']) )
    {
       $username = $_POST['username'];
       parse($username);
    }else{
      echo "Missing parameters!";
      exit();
    }
    function parse($username){
      //Must be same with server
      $host = "127.0.0.1";
      $port = 59090;
      // No Timeout
      //Create Socket
      $sock = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
      //Connect to the server
      $result = socket_connect($sock, $host, $port) or die("Could not connect toserver\n");
      $message = "player_online ". $username;
      //Write to server socket
      $len = strlen($message);
  
      socket_write($sock, $message, $len) or die("SENDING ERROR ". $message ." \n");
      //Read server respond message
      $result = socket_read($sock, 1024) or die("RESPONSE ERROR ". $message ." \n");
      echo "Reply From Server  :".$result;
      //Close the socket
      socket_close($sock);
    }
  ?&gt;
  </code></pre>
  
  <p>The problem is when I do <code>socket_write</code> (writing the data) on the PHP side, but the issue is at the java line <code>while ((inputLine = in.readLine()) != null) {</code>.</p>
  
  <p>Thanks so much!</p>