模仿 telnet 给 tcp 服务器发送数据

        

        1. 新建 tcp.php

<?php
//创建Server对象,监听 127.0.0.1:9501 端口
$server = new Swoole\Server('127.0.0.1', 9501);
$server->set([
   'worker_num'=>4,       //worker进程数 cpu 1-4  
   'max_request'=>10000,//
]);
//监听连接进入事件i
/**
* $fd 客户端连接的唯一标识
* $reactor_id 线程id
*/
$server->on('Connect', function ($server, $fd, $reactor_id) {
    echo "Client:{$reactor_id} -- {$fd} -- Connect.\n";
});
//监听数据接收事件
$server->on('Receive', function ($server, $fd, $reactor_id, $data) {
    $server->send($fd, "Server: {$reactor_id} -- {$fd}  {$data}");
});
//监听连接关闭事件
$server->on('Close', function ($server, $fd) {
    echo "Client: Close.\n";
});
//启动服务器
$server->start();

        2.新建tcp_client.php

<?php
// 连接 swoole tcp 服务
$client = new swoole_client(SWOOLE_SOCK_TCP);
if(!$client->connect("127.0.0.1", 9501))
{
    exit("连接失败"); 
}
//php cli 常量
fwrite(STDOUT, "请输入信息:");
$msg = trim(fgets(STDIN));
//发送消息给 tcp服务器
$client->send($msg);

//接收来自 server 的数据
$result = $client->recv();
echo $result.PHP_EOL;

        分别cli 模式下,启动 tcp服务,和 tcp 客户端程序。


        查看tcp服务启动了几个进程

[root@kafka1 swoole]# ps aft | grep tcp.php
 13365 pts/0    S+     0:00  \_ grep --color=auto tcp.php
 13112 pts/1    Sl+    0:00  \_ php tcp.php
 13113 pts/1    S+     0:00      \_ php tcp.php
 13117 pts/1    S+     0:00          \_ php tcp.php
 13118 pts/1    S+     0:00          \_ php tcp.php
 13119 pts/1    S+     0:00          \_ php tcp.php
 13120 pts/1    S+     0:00          \_ php tcp.php


冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论