php

PHP als TCP-Server

Mit php kann man wunderbar einen kleinen TCP-Server basteln, der sich für alle möglichen Anwendungen eignet. Das TCP Handling wird dabei vom tcpserver (http://cr.yp.to/ucspi-tcp.html) übernommen.

Das php-script myphpserver.php:

#!/usr/bin/env php -q

<?php
   set_time_limit(3600); //max one hour..
    $doquit=false;
    function doincomming($in)
    {
       $in=trim($in);
       if ($in=="quit") {
          $GLOBALS["doquit"]=true;
          $result="bye!";
       } else {
          $result="Why do you mean $in is good for me ?";
       }
       return($result);
    }

    $fp = fopen("php://stdin", "r");
    if (!$fp)
       die('no way');

    while($doquit==false && ($buf=fgets($fp, 1500)) != false)
    {

       $buf=preg_replace('!\r!','',$buf);
       $buf=preg_replace('!\n!','',$buf);
       if ($buf) {
          $out=doincomming($buf);
          if ($out) {
             print($out."\r\n");
          }
       }
    }
    fclose($fp);

?>

Starten des Server:

/usr/local/bin/tcpserver \
-c 15 -v -RHlfoo.example.com 0 2323 \
/wo/auch/immer/du/das/script/hast/myphpserver.php

 
Installation ucspi-tcp:

FREEBSDsudo pkg install ucspi-tcp

Debian/Ubuntu: sudo apt-get install  ucspi-tcp