<?php
// Server-side
$pipe_to_server = $argv[1]; // '/tmp/my_pipe_to_server';
$pipe_from_server = $argv[2]; // 'tmp/my_pipe_from_server';

// Open pipe for reading from client
$read_handle = fopen($pipe_to_server, 'r');
if (!$read_handle) {
  die("Failed to open pipe for reading.\n");
}

// Open pipe for writing to client
$write_handle = fopen($pipe_from_server, 'w');
if (!$write_handle) {
  die("Failed to open pipe for writing.\n");
}

echo "Server ready.\n";

// Read from client
while (!feof($read_handle)) {
  $message = trim(fgets($read_handle));
  if ($message === 'exit') {
    break;
  }
  echo "Server received: " . $message . "\n";
  // Write a response back to the client
  fwrite($write_handle, "Server acknowledges: " . $message . "\n");
}

fclose($read_handle);
fclose($write_handle);
echo "Server closed.\n";
?>