Net_Serverのサンプル

PHPのネットワークサーバの続きなのだけども、PEARNet_Serverを使えば、割と簡単にできてしまうのね。。。

とはいうものの、$type が 「Mulitprocess」 の場合だけうまくいかない。
PHP_Forkを入れる必要があるのだけど、PEARだとインストールに失敗してしまう。

以下、Net_Server のサンプルコピーをほぼ丸写ししたもの。
(どちらかと言えば自分用メモ欄) [php] <?php require_once 'Net/Server.php'; require_once 'Net/Server/Handler.php';

class Net_Server_Handler_Talkback extends Net_Server_Handler { function onReceiveData($clientId = 0, $data = '') { $this->_server->sendData($clientId, 'You said: ' . $data); }

function onIdle() {
    $this->_server->sendData(0, "Please say something!\n");
}

}

$type = 'Multiprocess'; / sequencial, fork / $server =& Net_Server::create($type, 'localhost', 9090); // $server->setIdleTimeout(10);

if (PEAR::isError($server)) { echo $server->getMessage() . "\n"; }

$handler = new Net_Server_Handler_Talkback(); $server->setCallbackObject($handler); $server->readBufferSize = 1; $server->readEncCharacter = "\n"; $server->_debug = true;

$server->start();[/php]