Swoole从入门到入土(2)——TCP服务器[初步接触]

本文介绍了如何使用Swoole在PHP中建立一个简单的TCP服务器,包括监听连接、接收和发送数据的事件处理。同时,详细解析了SwooleServer的相关函数,如构造函数、on、start、send和getClientInfo。此外,还探讨了Master、Reactor线程、Worker进程等概念,以及onConnect、onReceive和onClose事件的回调机制。

        我们知道Swoole弥补了PHP没办法实现长连接的短板,在接下来的话题中,我们会从TCP服务器、HTTP服务器、WebSocket服务器、协程、管道、中间件等话题,一个个进行讨论。

1、开篇

        我们以Swoole一个最简单的例子作为开篇:

//创建Server对象,监听 127.0.0.1:9501 端口
$server = new Swoole\Server('0.0.0.0', 9501);

//监听连接进入事件
$server->on('Connect', function ($server, $fd) {
    echo "Client: Connect.\n";
});

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

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

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

把这段代码,保存为文件swoole.php,接着我们用php命令运行:php swoole.php。这时我们就可以看到一个简单的TCP服务器在侦听中。

代码的大致作用是:

        1) 服务端发现客户端有连接的时候,就会输出文字“Client:Connect”

        2) 一旦收到客户端的消息,就会向客户端发送“Server:消息原文”

        3) 连接断开时,输出文字“Client:Close”

2、验证

        现在为了让大家更直观的看到连接情况,我们用SockeTool工具进行实验:

         

1) php swoole.php启动服务端。

2) SocketTool创建TCP客户端,填入服务端对应的IP和端口:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值