最简单的TCP服务搭建
1 写服务端启动文件 SwooleService.php
<?php
# tcp服务端
$serv = new swoole_server("127.0.0.1",9501);
$serv->set(['worker_num'=>4,'max_request'=>100]);
/**
* 监听连接进入事件
* $fd 客户端连接服务端的唯一标识
* $reactor_id 线程id
*/
$serv->on('connect',function ($serv,$fd,$reactor_id){
echo "Client:{$fd} - {$reactor_id} - Connect.\n";
});
#监听数据接收事件
$serv->on('receive',function ($serv,$fd,$reactor_id,$data){
$serv->send($fd,"Server: ".$data);
});
#监听连接关闭事件
$serv->on('close',function ($serv,$fd){
echo "Client:Close.\n";
});
#启动服务器
$serv->start();
2 启动服务端
cd /../.. php SwooleService.php
注意:如果提示 Uncaught Swoole\Exception: failed to listen server port[127.0.0.1:9501], Error: Address already
in use 说明服务已经开启,如果想要关闭的话,输入以下命令 杀死该进程 然后重新开启即可
[root@izuf60sbbc0 server]# netstat -anp|grep 9501
tcp 0 0 127.0.0.1:9501 0.0.0.0:* LISTEN 19422/php
[root@izuf60sbbc0 server]# kill -9 19422
3 编辑客户端启动文件 SwooleClient.php
<?php
#TCP客户端
$client = new swoole_client(SWOOLE_SOCK_TCP);
#连接TCP服务端
if (!$client->connect('127.0.0.1',9501)){
echo '连接失败!';
exit;
}
#php cli
fwrite(STDOUT,'请输入:');
$msg = trim(fgets(STDIN));
#发送消息给tcp服务端
if (!$client->send($msg)){
echo '发送消息失败!';
exit;
}
#接收
$result = $client->recv();
echo $result;
4 启动客户端
此刻 最简单的 Swoole 微服务创建成功!