title: Socket client send message
body: <p>I am newbie for socket connections, 
  I want to send some commands, to socket server, but I can only just send first message not the others. </p>
  
  <p>Client:</p>
  
  <pre><code>$fp = stream_socket_client("tcp://127.0.0.1:1000", $errno, $errstr, 30);
  if (!$fp) {
      echo "$errstr ($errno)&lt;br /&gt;\n";
  } else {
      $cmd_1 = "hello";
      fwrite($fp, $cmd_1);
      while (!feof($fp)) {
          print_r(fgets($fp, 1024));
      }
      $cmd_2 = "second message";
      fwrite($fp, $cmd_2);
      while (!feof($fp)) {
          print_r(fgets($fp, 1024));
      }
      fclose($fp);
  }
  </code></pre>
  
  <p>How can I send multiple messages like first <code>$cmd_1</code>, and depends on the result, i have to send <code>$cmd_2</code>?</p>
  
  <p>server</p>
  
  <pre><code>error_reporting(E_ALL);
  
  /* Allow the script to hang around waiting for connections. */
  set_time_limit(0);
  
  /* Turn on implicit output flushing so we see what we're getting
   * as it comes in. */
  ob_implicit_flush();
  
  $address = '127.0.0.1';
  $port = 1000;
  
  if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
      echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
  }
  
  if (socket_bind($sock, $address, $port) === false) {
      echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
  }
  
  if (socket_listen($sock, 5) === false) {
      echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
  }
  
  do {
      if (($msgsock = socket_accept($sock)) === false) {
          echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
          break;
      }
      /* Send instructions. */
      $msg = "\nWelcome to the PHP Test Server. \n" .
          "To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
      socket_write($msgsock, $msg, strlen($msg));
  
      do {
          if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
              echo "socket_read() failed: reason: " . socket_strerror(socket_last_error($msgsock)) . "\n";
              break 2;
          }
          if (!$buf = trim($buf)) {
              continue;
          }
          if ($buf == 'quit') {
              break;
          }
          if ($buf == 'shutdown') {
              socket_close($msgsock);
              break 2;
          }
          $talkback = "PHP: You said '$buf'.\n";
          socket_write($msgsock, $talkback, strlen($talkback));
          echo "$buf\n";
      } while (true);
      socket_close($msgsock);
  } while (true);
  
  socket_close($sock);
  </code></pre>