swoole之建立 tcp server

一、swoole的安装

参照官网:https://wiki.swoole.com/wiki/page/6.html

二、代码部分

服务端:

<?php

$host = "127.0.0.1";
$port = 9501;
$mode = SWOOLE_PROCESS; // 多进程模式 默认
$sock_type = SWOOLE_SOCK_TCP; // 创建tcp socket 默认
//创建Server对象,监听 127.0.0.1:9501端口
$serv = new swoole_server($host, $port, $mode, $sock_type);

$serv->set([
    // ps aft | grep php 查看
    'worker_num' => 4, // worker进程数 cpu核数的1-4倍
    'max_request' => 10000,
]);

//监听连接进入事件
/**
 * $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: {$fd} - {$reactor_id} - ".$data);
});

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

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

客户端:

<?php
// 连接 tcp server服务器
$client = new swoole_client(SWOOLE_SOCK_TCP);
if (!$client->connect('127.0.0.1', 9501)) {
    exit("connect failed. Error: {$client->errCode}\n");
}
// php cli常量
fwrite(STDIN, "请输入消息:");
$msg = trim(fgets(STDOUT));
// 发送消息get tcp server 服务器
$client->send("{$msg}\n");
// 接收来自server的数据
echo $result = $client->recv();
$client->close();

也可通过 命令行:

# telnet 127.0.0.1 9501

进行测试

 

 

转载于:https://www.cnblogs.com/cshaptx4869/p/10813160.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值