部落格分類:php
fpsocket
linux
qq本文章於2023年11月修改。
swoole提供了php的高效能server,非同步io,asyncmysql等特性。
原php**框架遷移至保留原有**和web框架。
swoole socket網路開發框架,是基於php的libevent和pcntl模組的,並且只能用於linux/unix系統下。請先啟用pcntl,安裝libevent擴充套件。
pcntl:php核心模組已包含了pcntl,只需在編譯時加入--enable-pcntl即可,當然也可以用extension擴充套件
libevent:
編寫的類需要繼承自tcpserver類,在swoolesocket包中。目前只提供了單程序非同步事件模型,適合用於io耗時較少的網路伺服器程式,比如聊天室。多程序非同步模型,多程序同步模型,會在近期提供。基類的**,請從檢出
php**
<?php
require 'tcpserver.php';
class myserver extends tcpserver
elseif($data=='shutdown')
else
} /**
* 傳送到所有客戶端
* @param $data
* @return unknown_type
*/
function sendall($client_id,$data)
} /**
* 傳送到某個客戶端
* @param $client_id
* @param $data
* @return unknown_type
*/
function sendto($client_id,$data)
function onstart()
function onconnect($client_id)
function onclose($client_id)
function onshutdown()
} $server = new myserver('0.0.0.0',8005);
$server->run();
客戶端程式
php**
<?php
class stdio
static function output($string)
} $fp = stream_socket_client('tcp:',$errno, $errstr);
$socket = serialize($fp);
if(!$fp)
else
//child
elseif($pid==0)
} //parent
else
posix_kill($pid, 9);
} fclose($fp);
} php tcpserver.php 執行伺服器程式
php tcpclient.php 執行客戶端程式,客戶端有2個程序,主程序負責接收輸入資訊,傳送到網路。另乙個程序,接收網路資訊,顯示在螢幕上。
PHP寫的非同步高併發伺服器,基於libevent
部落格分類 php fpsocket linuxqq 本文章於2013年11月修改。swoole提供了php的高效能server,非同步io,asyncmysql等特性。原php 框架遷移至保留原有 和web框架。swoole socket網路開發框架,是基於php的libevent和pcntl模組...
PHP寫的非同步高併發伺服器,基於libevent
部落格分類 php fpsocket linuxqq 本文章於2013年11月修改。swoole提供了php的高效能server,非同步io,asyncmysql等特性。原php 框架遷移至保留原有 和web框架。swoole socket網路開發框架,是基於php的libevent和pcntl模組...
高併發伺服器(基於epoll)
本章節是用基本的linux unix基本函式編寫乙個完整的伺服器和客戶端例子,可在linux ubuntu 和unix freebsd 上執行,客戶端和服務端的功能如下 客戶端從標準輸入讀入一行,傳送到服務端 服務端從網路讀取一行,把小寫變為大寫,然後輸出到客戶端 客戶端收到服務端的響應,輸出這一行...