Net_Serverのサンプル
PHPのネットワークサーバの続きなのだけども、PEARのNet_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]