美文网首页
swoole_tcp服务器

swoole_tcp服务器

作者: 骑代码奔小康 | 来源:发表于2019-05-30 22:47 被阅读0次

一、swoole的tcp服务第一次封装

<?php
//创建Server对象,监听 127.0.0.1:80端口
$serv = new swoole_server("0.0.0.0", 80); 

$serv->set([
    // 'reactor_num' => 2, // 设置为CPU核数
    'worker_num' => 4, // worke进程数  CPU的 1-4倍
    'max_request' => 10000 // worker进程的最大任务数
]);

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

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

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

//启动服务器
$serv->start(); 
  1. 写好以后 打开命令窗口 执行 php tcp_server.php ,有连接就会执行connet事件,窗口就会打印出(线程id和用户id)


    image.png
  2. 在一个新窗口执行 netstat -anp|grep 80 查看监听的端口


    image.png

    3.使用命令 ps aft | grep tcp_server.php 可以查看到 tcp服务器开启的进程数,这个数量与 ('worker_num' => 4, // worke进程数 CPU的 1-4倍)的数量一致


    image.png
  1. 新开一个窗口连接tcp服务器,发送456789,服务端就会执行receive 里的send方法给用户推送456789


    image.png

二、tcp客户端

$client = new swoole_client(SWOOLE_SOCK_TCP);

//连接到服务器
if (!$client->connect('127.0.0.1', 9501, 0.5))
{
    die("connect failed.");
}
//向服务器发送数据
if (!$client->send("这次不是hello world"))
{
    die("send failed.");
}
//从服务器接收数据
$data = $client->recv();
if (!$data)
{
    die("recv failed.");
}
echo $data; // 服务器接收到的数据
//关闭连接
$client->close();

在命令窗口中执行 php tcp_client.php
就可以看到服务器返回的 数据!

image.png

相关文章

  • swoole_tcp服务器

    一、swoole的tcp服务第一次封装 写好以后 打开命令窗口 执行 php tcp_server.php ,有连...

  • 服务器硬件了解

    常见服务器品牌包括: IBM服务器、Dell服务器、HP服务器、浪潮服务器、华为服务器。 服务器硬件组成: 服务器...

  • 服务器和客户端

    服务器相关知识 服务器 服务器概念:能够提供某种服务的机器被称为服务器 服务器分类 服务器类型 文件服务器:向客...

  • 19

    服务器刀片服务器(电脑)不同的服务器需求是不一样的。服务器机器:服务器被攻击了,买了一台服务器。服务器挂了。服务器...

  • pomelo学习

    1,gate服务器 connector服务器 game服务器connector服务器和gate服务器间通过r...

  • MySql配置主主复制

    服务器A:192.168.99.24服务器B:10.255.255.24 服务器A mysql配置 服务器B my...

  • ajax

    1. 服务器 刀片服务器(电脑)不同的服务器需求是不一样的。服务器机器:服务器被攻击了,买了一台服务器。服务器挂了...

  • 2018-10-26

    1. 服务器 刀片服务器(电脑)不同的服务器需求是不一样的。服务器机器:服务器被攻击了,买了一台服务器。服务器挂了...

  • javaWeb知识总结

    一.web服务器,servlet服务器,servlet和jvm 1.1web服务器 服务器:安装了服务器软件的计算...

  • nginx负载均衡傻瓜式配置demo

    服务器:主服务器ip 172.31.242.250 、从服务器ip 172.31.242.249 主服务器ng...

网友评论

      本文标题:swoole_tcp服务器

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