<?php
class TCP{
private $server=null;
public function __construct()
{
$this->server=new Swoole\Server("127.0.0.1",19501);
$this->server->set(array(
'reactor_num' => 2, // reactor thread num
'worker_num' => 4, // worker process num
'max_request' => 50,
));
//监听连接进入事件
$this->server->on("Connect",[$this,"onConnect"]);
///监听数据接收事件
$this->server->on("Receive",[$this,"onReceive"]);
//监听连接关闭事件
$this->server->on("Close",[$this,"onClose"]);
//启动TCP服务器
$this->server->start();
}
/**
* 监听TCP客户端连接回调方法
* @param $server
* @param $fd TCP客户端连接的标识符
*/
public function onConnect($server,$fd){
echo "Client: Connect.\n";
}
/**
* 监听TCP客户端数据回调方法
* @param $server
* @param $fd TCP客户端连接的标识符
* @param $reactor_id $reactor_id是来自于哪个reactor线程
* @param $data 客户端发过来的数据
*/
public function onReceive($server,$fd,$reactor_id, $data){
//收到数据在次发给客户端
$server->send($fd, "Server: {$data}");
echo "收到客户端".$fd."的数据数据是".$data;
}
/**
* 监听TCP客户端断开回调方法
* @param $server
* @param $fd TCP客户端连接的标识符
*/
public function onClose($server,$fd){
echo "Client: Close.\n";
}
}
new TCP();
|