windows 搭建 swoole开发环境(官网已支持)

第一步下载:swoole官网下载 swoole-cli-v5.0.3-cygwin-x64.zip 只支持 64 位的系统

第二步解压到指定文件夹:E:\phpstudy_pro\WWW\swoole-cli-v5.0.3-cygwin-x64

第三步设置环境变量:把解压后的文件夹下的 bin 目录路径配置到系统的 Path 环境变量中,确定保存

 

第四步检查安装情况:打开CMD命令行输入:swoole-cli -v,安装成功

第五步:编写简单的TCP服务器代码:TCP.php

1. 服务端:

<?phpclass TCP
{private $server = null;public function __construct(){$this->server = new Swoole\Server('127.0.0.1', 9501);$this->server->set(array('worker_num' => 4,     // 进程数'max_request' => 50,    // 每个进程最大接受请求数));//监听连接进入事件。$this->server->on('Connect', [$this, 'onConnect']);//监听数据接收事件。$this->server->on('Receive', [$this, 'onReceive']);监听连接关闭事件。$this->server->on('Close', [$this, 'onClose']);//启动服务器$this->server->start();}public function onConnect($server, $fd){echo "客户端id: {$fd}连接.\n";}public function onReceive($server, $fd, $reactor_id, $data){$server->send($fd, "发送的数据: {$data}");}public function onClose($server, $fd){echo "客户端id: {$fd}关闭.\n";}}new TCP();

运行:

2. 客户端:

<?phpuse Swoole\Coroutine\Client;
use function Swoole\Coroutine\run;run(function () {$client = new Client(SWOOLE_SOCK_TCP);if (!$client->connect('127.0.0.1', 9501, 0.5)) {echo "connect failed. Error: {$client->errCode}\n";}fwrite(STDOUT, '请输入');$res = fgets(STDIN);$client->send($res);echo $client->recv();$client->close();
});

运行: 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/65758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring中如何解决循环依赖问题的三种方法

什么是循环依赖问题 在 Spring 中&#xff0c;循环依赖问题指的是两个或多个 bean 之间相互依赖形成的闭环。具体而言&#xff0c;当 bean A 依赖于 bean B&#xff0c;同时 bean B 也依赖于 bean A&#xff0c;就形成了循环依赖。 循环依赖问题在 Spring 容器中是一个非常常…

Anycloud37D平台移植wirelesstools

0. 环境准备 下载 &#xff1a;https://www.linuxfromscratch.org/blfs/view/svn/basicnet/wireless_tools.html 1. 交叉编译wireless_tools tar xzf wireless_tools.29.tar.gz cd wireless_tools.29/打开Makefile&#xff0c;修改配置&#xff1a; ## Compiler to use (mo…

方法的引用第二版(method reference)

1、冗余的Lambda场景 在使用Lambda表达式的时候&#xff0c;我们实际上传递进去的代码就是一种解决方案&#xff1a;拿什么参数做什么操作。那么考虑一种情况&#xff1a;如果我们在Lambda中所指定的操作方案&#xff0c;已经有地方在相同方案&#xff0c;那是否还有必要再写重…

Swift的NSClassFromString转换

在swift 中使用NSClassFromString 从string 转换到 对象&#xff0c;报了Segmentation fault: 11 错误。 let ctrlClass: AnyClass NSClassFromString("HomeViewController")! let ctrl: UIViewController ctrlClass.init() as UIViewController 正确的写法&…

MATLAB制图代码【第二版】

MATLAB制图代码【第二版】 文档描述 Code describtion: This code is version 2 used for processing the data from the simulation and experiment. Time : 2023.9.3 Author: PEZHANG 这是在第一版基础上&#xff0c;迭代出的第二版MATLAB制图代码&#xff0c;第二版的特点是…

文献阅读:Semantic Communications for Speech Signals

目录 论文简介动机&#xff1a;为什么作者想要解决这个问题&#xff1f;贡献&#xff1a;作者在这篇论文中完成了什么工作(创新点)&#xff1f;规划&#xff1a;他们如何完成工作&#xff1f;自己的看法(作者如何得到的创新思路) 论文简介 作者 Zhenzi Weng Zhijin Qin Geoffre…

2023 AZ900备考

文章目录 如何学习最近准备考AZ900考试&#xff0c;找了一圈文档&#xff0c;结果发现看那么多文档&#xff0c;不如直接看官方的教程https://learn.microsoft.com/zh-cn/certifications/exams/az-900/ &#xff0c;简单直接&#xff0c;突然想到纳瓦尔宝典中提到多花时间进行思…

linux安装firefox

1.下载对应包 https://www.mozilla.org/en-US/firefox/all/#product-desktop-release 2. 挂载桌面链接(如果/usr/bin/firefox下有的话,先删除) ln -s /opt/firefox/firefox /usr/bin/firefox 3.执行以下命令&#xff0c;即可启动Firefox客户端&#xff1a; firefox

Windows 重新映射 CapsLock 大写锁定到 Ctrl

Windows 重新映射 CapsLock 大写锁定到 Ctrl 本要点中的这些方法适用于我的美国键盘布局。我不确定其他布局。如果出现问题&#xff0c;请恢复您的更改&#xff1b;删除您创建的注册表项&#xff08;并重新启动&#xff09;。 强烈推荐 方法5 ctrl2cap&#xff0c;因为不会影…

《开发实战》14 | Spring框架:IoC和AOP是扩展的核心

14 | Spring框架&#xff1a;IoC和AOP是扩展的核心 IOC、AOP IoC&#xff0c;其实就是一种设计思想&#xff0c;为什么要让容器来管理对象呢&#xff1f;或许你能想到的是&#xff0c;使用 IoC 方便、可以实现解耦。但在我看来&#xff0c;相比于这两个原因&#xff0c;更重要…

Linux 基础篇

很长时间&#xff0c;因为一些事情&#xff0c;没有更新我的文章这让我很惭愧&#xff0c;于是我将打算在今天更新下自己的文章&#xff0c;我发现一些事情&#xff0c;计算机并不是很难学到可以工作的水平&#xff0c;关键在于是否可以坚持下来&#xff0c;有很多时候我并不是…

java项目mysql转postgresql

特殊函数 &#xff1a; mysql&#xff1a; find_in_set(?, ancestors) postgresql&#xff1a; ? ANY (string_to_array(ancestors,,)) mysql&#xff1a; date_format(t1.oper_time, %Y-%m-%d) postgresql&#xff1a; rksj::date to_char(inDate,YYYY-MM-DD) mysql&am…

vue中的nextTick的作用

vue里面&#xff0c;常用的事件onMounted里&#xff0c;总喜欢用一个nextTick&#xff1a; onMounted(() > {nextTick(() > {init();}); });这个东西有啥用呢&#xff1f;我总搞不懂。 今天我忽然有点明白了。这是一个跟前面语句有关的方法。意思是&#xff0c;等前面的…

Linux 配置Java 环境变量

1.修改 profile vim /etc/profile2.增加环境变量 # java env start export JAVA_HOME{java安装目录}export PATH$JAVA_HOME/bin:$PATHexport CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # java env end3.刷新配置 source /etc/profile4.验证 echo $JAVA_H…

【Redis】Redis 的学习教程(七)之 SpringBoot 集成 Redis

在前几篇文章中&#xff0c;我们详细介绍了 Redis 的一些功能特性以及主流的 java 客户端 api 使用方法。 在当前流行的微服务以及分布式集群环境下&#xff0c;Redis 的使用场景可以说非常的广泛&#xff0c;能解决集群环境下系统中遇到的不少技术问题&#xff0c;在此列举几…

Vue.js安装步骤和注意事项

安装完node.js后开始安装和部署Vue在检查webpack的下载版本时出现错误出现错误的原因是之前下载时未指定对应的版本号导致版本不兼容先卸载掉之前下载的版本 cnpm uninstall webpack-cli -g cnpm install webpack-cli4.9.2 -g 最后检查版本是否对应

信息化发展19

数据结构模型 1 、数据结构模型是数据库系统的核心。数据结构模型描述了在数据库中结构化和操纵数据的方法&#xff0c; 模型的结构部分规定了数据如何被描述&#xff08;例如树、表等&#xff09;。模型的操纵部分规定了数据的添加、删除、显示、维护、打印、查找、选择、排序…

React:props说明

props是只读对象&#xff08;readonly&#xff09; 根据单项数据流的要求&#xff0c;子组件只能读取props中的数据&#xff0c;不能进行修改props可以传递任意数据 数字、字符串、布尔值、数组、对象、函数、JSX import FileUpdate from ./FileUpdate; export default class …

分数问题善用移项:0902T2

其实就是分数规划&#xff0c;但不完全是。 对于求 ∑ p i l i ∑ l i \Large\frac{\sum p_il_i}{\sum l_i} ∑li​∑pi​li​​ 在限定条件下的最大值&#xff0c;此类问题可以考虑二分答案并移项。 ∑ p i l i ∑ l i ≥ k \Large\frac{\sum p_il_i}{\sum l_i}\ge k ∑li​…

[dasctf]misc3 chrchrchr.pcapng

webshell 流量分析 php代码部分没啥看的&#xff0c;主要在标黄的部分&#xff0c;裁剪掉前面的字符可base解码 能看到在向a.txt中写入数据 wp # tshark.exe -r chrchrchr.pcapng -T fields -e urlencoded-form.value -Y "urlencoded-form.keyzd2ebbfb26dd" >…