美文网首页
swoole入门

swoole入门

作者: IT小池 | 来源:发表于2019-04-22 20:47 被阅读0次

首先创建一个tcp服务器:

//创建Server对象,监听 127.0.0.1:9501端口
$serv = new swoole_server("127.0.0.1", 9501); 

// 设置参数
$serv->set(array(
    'worker_num' => 4,    //worker process num
    'max_request' => 5000,
));

//监听连接进入事件
// $fd就是客户端连接的唯一标识符
// $reactor_id 线程id
$serv->on('connect', function ($serv, $fd, $reactor_id) {  
    echo "Client: Connect.\n";
});

//监听数据接收事件
$serv->on('receive', function ($serv, $fd, $from_id, $reactor_id,$data) {
    $serv->send($fd, "Server: ".$data);
});

//监听连接关闭事件
$serv->on('close', function ($serv, $fd) {
    echo "Client: Close.\n";
});

//启动服务器
$serv->start(); 

然后使用命令行执行

php tcp.php

然后在新开一个命令行,执行:

# 检测端口是否启动
netstat -anp | grep 9501
# 链接 tcp 服务器
telnet 127.0.0.1 9501

命令行查看线程数:

ps aft | grep tcp.php
swoole客户端链接

创建 swoole_client.php,内容如下:

<?php
// swoole 内置常量 SWOOLE_SOCK_TCP
$client = new swoole_client(SWOOLE_SOCK_TCP);
if (!$client->connect('127.0.0.1', 9501, -1))
{
    echo '链接失败';
    exit("connect failed. Error: {$client->errCode}\n");
}

// php 内置常量 STDOUT STDIN
fwrite(STDOUT,''请输入消息);
$msg = trim(fgets(STDIN));
// 发送给 tcp 服务器 
$client->send($msg);

// 接收 tcp 服务器返回的数据
echo $client->recv();

$client->close();

相关文章

网友评论

      本文标题:swoole入门

      本文链接:https://www.haomeiwen.com/subject/wutpgqtx.html