1.新建tpc.php文件
<?php
//创建Server对象,监听 127.0.0.1:9501端口
$serv = new swoole_server("127.0.0.1", 9501);
$serv->set(array(
'worker_num'=>8,//worker进程数 cpu 1-4倍
)
);
//监听连接进入事件
/*
* $fd 客户端连接的唯一标识
* $reactor_id 线程id
* */
$serv->on('connect', function ($serv, $fd,$reactor_id) {
echo "Client:{$reactor_id}-{$fd} Connect.\n";
});
//监听数据接收事件
$serv->on('receive', function ($serv, $fd, $reactor_id, $data) {
$serv->send($fd, "Server:{$reactor_id}-{$fd} ".$data);
echo "Client:{$reactor_id}-{$fd} $data.\n";
});
//监听连接关闭事件
$serv->on('close', function ($serv, $fd) {
echo "Client: Close.\n";
});
//启动服务器
$serv->start();
2.开启tcp服务
php tcp.php
测试:开启另外一个窗口连接9501端口
telnet 127.0.0.1 9501
当有连接和输入的时候服务端都会有相应的打印
3.tcp_client.php 连接tcp服务的脚本
<?php
//连接swoole tcp服务
$client=new swoole_client(SWOOLE_SOCK_TCP);
if(!$client->connect("127.0.0.1",9501)){
echo 'tcp连接失败';
};
//php cli 常量
fwrite(STDOUT,"请输入消息:");
$msg=trim(fgets(STDOUT));
//发送消息给tcp server服务器
$client->send($msg);
//接收来自server的数据
$result=$client->recv();
echo $result;
查看tcp开启了几个进程
ps aft |grep tcp.php
接下来php四种回调函数根据我们运用的场景4种写法