php网络编程swoole http

news/2024/12/23 20:33:59/文章来源:https://www.cnblogs.com/xuxiaobo/p/18624982

服务端:

<?php
use Swoole\Http\Server;
use Swoole\Http\Request;
use Swoole\Http\Response;// 创建 HTTP 服务器
$server = new Server('127.0.0.1', 9501);$server->on('start', function ($server) {//print_r($server);echo "Swoole http server is started at http://127.0.0.1:9501\n";
});// 设置服务器配置
$server->set(['worker_num' => 4, // 设置工作进程数'max_request' => 1000, // 每个进程最大接受请求数'dispatch_mode' => 1, // 数据包分发策略"enable_static_handler"    => true,  //支持静态文件"document_root"   => "D:/workspace/swoole_test/static",//文件位置'daemonize'=> false,
]);// 监听请求事件
$server->on('request', function (Request $request, Response $response) {echo "get:\n".print_r($request->get, true)."\n\n";echo "post:\n".print_r($request->post, true)."\n\n";echo "cookie:\n".print_r($request->cookie, true)."\n\n";echo "files:\n".print_r($request->files, true)."\n\n";echo "header:\n".print_r($request->header, true)."\n\n";echo "server:\n".print_r($request->server, true)."\n\n";// 设置响应头$response->header('Content-Type', 'text/html; charset=utf-8');$response->cookie("User", "Swoole");$response->header("X-Server", "Swoole");// 处理 GET 请求if ($request->server['request_method'] == 'GET') {$response->end('你好,我是Swoole');} else {$response->end('Method Not Allowed');}
});// 启动服务器
$server->start();

  客户端:

<?php
use Swoole\Coroutine\Http\Client;
use function Swoole\Coroutine\run;run(function () {$cli = new Client('127.0.0.1', 9501);$cli->get('/get');echo $cli->body;$cli->close();
});

  

输出:

 

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

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

相关文章

JVM简介—2.垃圾回收器和内存分配策略

大纲 1.垃圾回收概述 2.如何判断对象存活 3.各种引用介绍 4.垃圾收集的算法 5.垃圾收集器的设计 6.垃圾回收器列表 7.各种垃圾回收器详情 8.Stop The World现象 9.内存分配与回收策略 10.新生代不同配置演示 11.内存泄漏和内存溢出 12.JDK为提供的工具1.垃圾回收概述 2.如何判…

OpenAI 推出嵌入式硬件 SDK,支持 ESP32 语音开发;INFP:音频驱动的双人对话头像生成,自动区分说话者和倾听者

开发者朋友们大家好:这里是 「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

8086汇编(16位汇编)学习笔记02.分段,机器码和寻址

原文链接:https://bpsend.net/thread-112-1-2.html 分段问题1 8086是16位cpu,最多可以访问(寻址)多大内存?运算器一次最多处理16位的数据。地址寄存器的最大宽度为16位。访问的最大内存为:216 = 64K 即 0000 - FFFF。问题2 8086允许最大内存1M,如何实现访问(寻址)到所…

AI对话机器人续:将AI Bot接入企业微信

之前尝试将Coze AI Bot接入到了微信,有朋友问如何接入企业微信,今天有空尝试了下,和你分享一下过程。整体流程和步骤还是基于chatgpt-on-wechat这个开源框架来的,唯一的差别就在于部署chatgpt-on-wechat的时候,需要填写一些企业微信相关的参数和secret。大家好,我是Ediso…

python网络编程之udp

服务端:import socketsk = socket.socket(type=socket.SOCK_DGRAM) # 表示一个udp协议 sk.bind((127.0.0.1, 9504))# 服务端不能先发送消息,因为服务端不知道客户端的ip while True:msg, addr = sk.recvfrom(1024)print(f"接收到客户端数据:{msg.decode(utf-8)}"…

Qt编程快速入门(1)Qt结构简介

Qt构成Qt(/ˈkjuːt/,发音同“cute”)是一个跨平台的C++应用程序开发框架。广泛用于开发GUI程序,这种情况下又被称为部件工具箱。也可用于开发非GUI程序,例如控制台工具和服务器。-摘自维基百科Qt可以在多个平台编译运行,包括Windows、Linux、Mac OS,其运行时的表现取决…

python网络编程之websocket

服务端:import asyncio import websockets# 保存已连接的客户端列表 connected_clients = set()async def handle_websocket(websocket):# 将新的客户端添加到已连接客户端列表remote_address = websocket.remote_addressconnected_clients.add(websocket)print(f"新的客…

.NET 阻止系统睡眠/息屏

本文介绍Windows系统设备下如何阻止系统睡眠/息屏,以及想看当前阻止睡眠/息屏的应用信息 powercfg /requests查看活动列表 在播放音乐时,我们会发现设置了系统电源管理-自动睡眠,计划不会生效,这个音频播放操作阻止了系统自动睡眠。但不会阻止息屏,所以Windows下一般屏幕关…

python网络编程之http longpull

服务端:from flask import Flask, request, jsonify import timeapp = Flask(__name__)@app.route(/stream, methods=[GET]) def poll():# 假设这里有一个方法来检查是否有新数据# 为了示例,我们简单地模拟等待数据time.sleep(5) # 模拟处理时间或等待数据# 假设这是从某处获…

Python中指数概率分布函数的绘图详解

在数据科学和统计学中,指数分布是一种应用广泛的连续概率分布,通常用于建模独立随机事件发生的时间间隔。通过Python,我们可以方便地计算和绘制指数分布的概率密度函数(PDF)。本文将详细介绍指数分布的原理、应用场景,并提供详细的代码示例,展示如何在Python中绘制指数分…

VScode + cmake编写Qt程序

本机环境 Ubuntu 20.04 Qt 5.12.81. 安装Vscode直接在官网下载对应的deb包安装即 可。下载后在deb包所在目录执行如下命令安装deb包。sudo dpkg -i 安装包名.deb然后在应用程序中应该就有了Vscode的图标了。2. 安装cmake与gcc g++先安装cmakesudo apt-get install cmake然后安装…

RK3588开发板入门教程

一、EVM-RK3588 评估板外观二、常用系统信息查看1、查看系统内核版本信息,使用uname命令:$unamet-a2、查看操作系统信息:$ cat /etc/issue3、查看系统内存使用情况:$free-h4、查看系统磁盘使用情况:$ df -h5、查看磁盘和分区:# 查看所有分区 $ fdisk -l # 查看文件可看到…