记录Swoole学习笔记
发布时间 - 2021-01-22 00:00:00 点击率:次推荐(免费):swoole
1. 安装
目前官方推荐两种方式
1).使用pecl的方式安装
pecl install swoole
2).使用源码安装,推荐下载releases版本的swoole,最好不要从github主干上拉取代码编译,直接下载tar包。
swoole包下载地址
然后进行编译安装
wget https://github.com/swoole/swoole-src/archive/v2.0.7.tar.gz
tar -zxf v2.0.7.tar.gz
cd swoole-src-2.0.7/
phpize //如果执行这个命令没有任何显示的话,使用apt-get install php7.0-dev安装包
./configure
make && make install2. 更改php.ini扩展
修改php.ini配置文件,使用命令 php -i |grep php.ini 查看php.ini位置
增加配置
extension=swoole.so
通过php -m或phpinfo()来查看是否成功加载了swoole
3. 栗子TCP服务器,三次握手
简单理解Socket
编写 server.php
//创建Server对象,监听 127.0.0.1:9501端口$serv = new swoole_server("127.0.0.1", 9501);
//监听连接进入事件$serv->on('connect', function ($serv, $fd) {
echo "Client: Connect.\n";
});
//监听数据接收事件$serv->on('receive', function ($serv, $fd, $from_id, $data) {
$serv->send($fd, "Server: ".$data);
echo "Receive message:$data";
//关闭连接(当然,也可以不关闭,不关闭的话会一直等待接收命令而无法退出)
$serv->close($fd);
});
//监听连接关闭事件$serv->on('close', function ($serv, $fd) {
echo "Client: Close.\n";
});
//启动服务器$serv->start();4. 启动服务
php server.php
启动后,光标即停止在这里,等待其他用户连接。
5. 查看连接
使用命令 netstat -an | grep 端口 来查看端口是否处于 Listening状态
netstat -an | grep 9501
(PS: 注意服务器所使用的IP地址,如果是127.0.0.1回环地址
,则客户端只能使用127.0.0.1才能连接上)
6. 测试TCP服务器
新开窗口使用 telnet 连接服务器
telnet 127.0.0.1 9501
此时,观察启动服务的机器,会发现有返回数据
php server.php
> Client:Connect.在返回客户端,输入hellp world,发现写入和读取成功
root@iZ28evegw6zZ:~# telnet 127.0.0.1 9501
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
hellp world //此处是输入的命令
Server:hellp world //recv()读取命令成功
Connection closed by foreign host. //退出成功
返回到服务器端观察
root@iZ28evegw6zZ:/var/www/html# php server.php
Client: Connect. //连接成功消息
Receive message: hellp world //接收到数据
Client:Close. //客户端退出成功
# php
# swoole
# github
# 客户端
# 在这里
# 下载地址
# 没有任何
# 两种
# 新开
# 配置文件
# 安装包
# 加载
# 发现有
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
如何用虚拟主机快速搭建网站?详细步骤解析
如何正确选择百度移动适配建站域名?
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
如何用搬瓦工VPS快速搭建个人网站?
Python并发异常传播_错误处理解析【教程】
如何获取上海专业网站定制建站电话?
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
郑州企业网站制作公司,郑州招聘网站有哪些?
Linux系统运维自动化项目教程_Ansible批量管理实战
香港服务器建站指南:免备案优势与SEO优化技巧全解析
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
音乐网站服务器如何优化API响应速度?
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
如何在宝塔面板创建新站点?
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
BootStrap整体框架之基础布局组件
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
在Oracle关闭情况下如何修改spfile的参数
北京网站制作的公司有哪些,北京白云观官方网站?
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
Laravel怎么在Blade中安全地输出原始HTML内容
如何在阿里云虚拟主机上快速搭建个人网站?
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
如何基于PHP生成高效IDC网络公司建站源码?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
敲碗10年!Mac系列传将迎来「触控与联网」双革新
公司网站制作需要多少钱,找人做公司网站需要多少钱?
如何快速搭建FTP站点实现文件共享?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
如何用腾讯建站主机快速创建免费网站?
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
简单实现Android文件上传
进行网站优化必须要坚持的四大原则
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
如何在IIS服务器上快速部署高效网站?
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
如何在IIS7上新建站点并设置安全权限?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
Laravel如何实现数据库事务?(DB Facade示例)
教学论文网站制作软件有哪些,写论文用什么软件
?
青岛网站建设如何选择本地服务器?

