php的异步非阻塞swoole模块使用实现简易tcp服务器
Posted saintdingspage
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php的异步非阻塞swoole模块使用实现简易tcp服务器相关的知识,希望对你有一定的参考价值。
- 绑定tcp服务器的地址
$swserver = new swoole_server("127.0.0.1",9501);
- 设置tcp服务器装机容量(太危言耸听了~其实就是设置属性)
$swserver->set([
‘worker_num‘=>8,
‘max_request‘=>10000
]);
- 读取连接请求信息---接通
$swserver->on(‘connect‘,function($swserver,$fd,$reactor_id){
echo "server线程:{$reactor_id}受到来自客户端线程{$fd}的请求";
});
- 向客户端发送数据(我们姑且这样做,客户端发来什么,我们原样返回什么)
$swserver->on(‘receive‘,function($swserver,$fd,$reactor_id,$data){
$swserver->send($fd,"服务器线程{$reactor_id}收到了来自客户端线程{$fd}的数据,并原样返回,其内容为:{$data}");
});
- 结束与客户端的对话
$swserver->on(‘close‘,function($swserver,$fd){
echo "服务端{$swserver}与客户端{$fd}的对话结束!";
});
- 开启服务端
$swserver->start();
如果上机实验时提示:failed, Error: Address already in use[98] 则利用 lsof -i:端口号 查看端口上运行的进程 然后运行sudo kill -9 进程号,杀掉占用端口的进程
另外开启一个终端窗口,运行命令telnet 127.0.0.1 9501连接服务端
服务端显示:
[[email protected] myswoole]# php swserver2.php
server线程:2受到来自客户端线程1的请求
客户端发送信息:喜欢陈培昌,回显信息如下:
服务器线程2收到了来自客户端线程1的数据,并原样返回,其内容为:喜欢陈培昌
以上是关于php的异步非阻塞swoole模块使用实现简易tcp服务器的主要内容,如果未能解决你的问题,请参考以下文章
六星教育-swoole-1911期swoole基础概念和长连接