wordpress关闭多站点贵州毕节建设局网站官网

diannao/2026/1/17 18:26:19/文章来源:
wordpress关闭多站点,贵州毕节建设局网站官网,wordpress有名的网站,用vs2010做网站登入跟着施磊老师做C项目#xff0c;施磊老师_腾讯课堂 (qq.com) 一、基于muduo网络库开发服务器程序 组合TcpServer对象创建EventLoop事件循环对象的指针明确TcpServer构造函数需要什么参数,输出ChatServer的构造函数在当前服务器类的构造函数当中,注册处理连接的回调函数和处理…跟着施磊老师做C项目施磊老师_腾讯课堂 (qq.com) 一、基于muduo网络库开发服务器程序 组合TcpServer对象创建EventLoop事件循环对象的指针明确TcpServer构造函数需要什么参数,输出ChatServer的构造函数在当前服务器类的构造函数当中,注册处理连接的回调函数和处理读写事件的回调函数设置合适的服务端线程数量,muduo库会自己分配I/O线程和worker线程 test.cpp  /*muduo网络库给用户提供了两个主要的类TcpServer: 用于编写服务器程序的TcpClient: 用于编写客户端程序的epoll 线程池好处:能够把网络I/O的代码和业务代码区分开对于业务代码主要暴露两个:用户的连接和断开;用户的可读写事件告诉muduo库,你对哪些事件感兴趣,并且你给我提前注册一个回调函数,当这些事情发生时,我会通知你,你去做你的事情吧! */ #include muduo/net/TcpServer.h #include muduo/net/EventLoop.h #include iostream #include functional #include stringusing namespace std; using namespace muduo; using namespace muduo::net; using namespace placeholders; // 基于muduo网络库开发服务器程序 /*1.组合TcpServer对象2.创建EventLoop事件循环对象的指针3.明确TcpServer构造函数需要什么参数,输出ChatServer的构造函数4.在当前服务器类的构造函数当中,注册处理连接的回调函数和处理读写事件的回调函数5.设置合适的服务端线程数量,muduo库会自己分配I/O线程和worker线程 */ class ChatServer { public:// 初始化TcpServer loop:事件循环 listenAddr:IPPort nameArg:服务器的名字ChatServer(EventLoop *loop, const InetAddress listenAddr, const string nameArg): m_server(loop, listenAddr, nameArg), m_loop(loop) {// 给服务器注册用户连接的创建和断开回调m_server.setConnectionCallback(std::bind(ChatServer::onConnection, this, _1));// 给服务器注册用户读写事件回调m_server.setMessageCallback(std::bind(ChatServer::onMessage, this, _1, _2, _3));// 设置服务器端的线程数量 1个I/O线程 3个worker线程m_server.setThreadNum(4);}// 开启事件循环void start() {m_server.start();} private:// 专门处理用户的连接创建和断开 epoll listenfd acceptvoid onConnection(const TcpConnectionPtr conn) {coutconn-peerAddress().toIpPort() - conn-localAddress().toIpPort() is ;if(conn-connected()) {coutstate:onlineendl;}else {coutstate:offlineendl;conn-shutdown(); // close(fd)// m_loop-quit();}}// 专门处理用户的读写事件 conn连接/buf缓冲区/time接收到数据的时间信息void onMessage(const TcpConnectionPtr conn, Buffer *buffer, Timestamp time) {string buf buffer-retrieveAllAsString();coutrecv data:buf time:time.toString()endl;conn-send(buf);}TcpServer m_server; // #1EventLoop *m_loop; // #2 epoll };int main() {EventLoop loop; // epollInetAddress addr(127.0.0.1,6000);ChatServer server(loop, addr, ChatServer);server.start(); // listenfd epoll_ctl epollloop.loop(); // epoll_wait以阻塞方式等待新用户连接,已连接用户的读写事件等return 0; } 生成server文件注意muduo_net要在muduo_base前面命令如下 g test.cpp -o server -lmuduo_net -lmuduo_base -lpthread 二 注意本文使用到了有关muduo的TcpServer.h中找到setConnectionCallback和setMessageCallback,点击跳转到有关connectionCallback的头文件中去 /// Set connection callback./// Not thread safe.void setConnectionCallback(const ConnectionCallback cb){ connectionCallback_ cb; }/// Set message callback./// Not thread safe.void setMessageCallback(const MessageCallback cb){ messageCallback_ cb; } 有关muduo的Callbacks.h typedef std::functionvoid (const TcpConnectionPtr) ConnectionCallback;// the data has been read to (buf, len) typedef std::functionvoid (const TcpConnectionPtr,Buffer*,Timestamp) MessageCallback; 找到对应的Callback我们就可以知道回调函数的参数和返回类型了 // 专门处理用户的连接创建和断开 epoll listenfd acceptvoid onConnection(const TcpConnectionPtr conn) {...}// 专门处理用户的读写事件 conn连接/buf缓冲区/time接收到数据的时间信息void onMessage(const TcpConnectionPtr conn, Buffer *buffer, Timestamp time) {...} 我的往期文章  在windows和Linux中的安装 boost 以及 安装 muduo-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/135963909?spm1001.2014.3001.5501 三、vscode实现一键运行server tasks.json {version: 2.0.0,tasks: [{type: cppbuild,label: C/C: g 生成活动文件,command: /usr/bin/g,args: [-fdiagnostics-coloralways,-g,-o,${workspaceFolder}/bin/app,// ${fileDirName}/${fileBasenameNoExtension},// -lmuduo_net,// -lmuduo_base,// -lpthread],options: {cwd: ${workspaceFolder}},problemMatcher: [$gcc],group: {kind: build,isDefault: true},detail: 编译器: /usr/bin/g}] } launch.json {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息请访问: https://go.microsoft.com/fwlink/?linkid830387version: 0.2.0,configurations: [{name: (gdb) 启动,type: cppdbg,request: launch,program: ${workspaceFolder}/bin/app,args: [],stopAtEntry: false,cwd: ${fileDirname},environment: [],externalConsole: false,MIMode: gdb,setupCommands: [{description: 为 gdb 启用整齐打印,text: -enable-pretty-printing,ignoreFailures: true},{description: 将反汇编风格设置为 Intel,text: -gdb-set disassembly-flavor intel,ignoreFailures: true}]}] } CMakeLists.txt cmake_minimum_required(VERSION 3.28.0) project(test) add_executable(server test.cpp)set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) target_link_libraries(server -lmuduo_net -lmuduo_base -lpthread) cmake -B build cmake --build build 二、CMake构建项目 testmuduo存放CMakeLists.txt和test.cpp CMakeLists.txt cmake_minimum_required(VERSION 3.28.0) project(test)# 配置头文件搜索路径 # include_directories() # 配置库文件搜索路径 # link_directories() # 设置需要编译的源文件列表 set(SRC_LIST test.cpp) # 把.指定路径下的所有源文件名字放入变量名SRC_LIST里面 # aux_source_directory(. SRC_LIST)# 生成可执行文件server,由SRC_LIST变量所定义的源文件编译生成 add_executable(server ${SRC_LIST})message(打印一下bin目录 ${BIN}) # 设置可执行文件的存放路径 set(EXECUTABLE_OUTPUT_PATH ${BIN})# 表示server这个目标程序需要链接这三个muduo_net muduo_base pthread库文件 # target_link_libraries(server -lmuduo_net -lmuduo_base -lpthread) target_link_libraries(server muduo_net muduo_base pthread) 与testmuduo文件夹同目录的CMakeLists.txt CMakeLists.txt cmake_minimum_required(VERSION 3.28.0) project(test_project)set(BIN ${PROJECT_SOURCE_DIR}/bin)# # 配置编译选项 # set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g)# 指定搜索的子目录 add_subdirectory(testmuduo) 在此终端执行命令 cmake -B build cmake --build build

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

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

相关文章

国际网站 建设小程序商店怎么注销

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

电商网站 支付宝接口注册代理公司

线程构造器结构 1.线程中的构造器可以使用很多参数 public thread():分配一个新的线程对象public Thread(String name):分配一个指定名字的线程对象public Thread(Runnable target):指定创建线程的目标对象,它实现了Runnable接口…

优秀电子商务网站免费空间清理软件

软件介绍 QGIS(Quantum GIS)是一款免费、开源、跨平台的地理信息系统(GIS)软件,适用于Unix平台、Windows和MacOS。提供了强大且用户友好的功能,使其成为地理信息处理领域的热门选择。 功能特点 1.空间数据管…

公众号发布的文章是wordpressseo高清视频教程

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 一.SSL-VPN概述 SLL VPN是一种基于HTTPS(即支持SSL的HTTP协议)的远程安全接入技术。它充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制&#…

青岛网站建设公司怎么样搭建网站费用

1.字符串的长度 // 字符串常用的操作 let str1 "qwasaertrayuasdf"; let str2 "asdfzcxfv"; // 1.字符串的长度 console.log(str1.length);2. charAt() : 返回指定索引位置的字符 // 字符串常用的操作 let str1 "qwasaertrayuasdf"; let str2…

公司门户网站建设品牌推广策略有哪几种

🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. 约束概述二. 约束演示三. 外键约束3.1 介绍3.2 语法3.3 删除/更新行为 &…

网文网站开发方案中国建设银行官网站保本理财

主要实现了两个小游戏,飞机大战和冰火人历险记,首先用Funcode生成地图文件和VS工程,然后进行编程 头文件 CommonAPI.h #ifndef _COMMON_API_H_ #define _COMMON_API_H_ // #include <windows.h>//===============================

p2p贷款网站开发app系统制作开发

要做到单井的分采分注&#xff0c;首先必须有一种井下工具将各油层分开。封隔器就是下人套管内&#xff0c;利用其弹性密封元件的变形来封隔油、气、水层的一种最重要的井下工具。封隔器接在油管柱的适当部位或下部&#xff0c;这种带封隔器和其他井下工具的油管柱叫做井下工艺…

如何申请网站优化工作找人做网赌网站需要多少钱

随着工业4.0的深入推进和智能制造的快速发展&#xff0c;复合机器人作为一种集成移动机器人和工业机器人功能的先进设备&#xff0c;正逐步成为工业自动化领域的新宠。特别是在磁钢上下料的应用中&#xff0c;复合机器人以其高度的灵活性和操作效率&#xff0c;展现了显著的优势…

自己做网站难吗安卓从网站获取视频怎么做

日前&#xff0c;据路透社报道&#xff0c;全球顶级零部件供应商博世正在位于德国东部的德累斯顿市兴建半导体工厂&#xff0c;总投资预计达10亿欧元(约合11亿美元)。据悉&#xff0c;此举凸显了博世对自动驾驶汽车以及工业物联网方向的双重布局。 据雷锋网(公众号&#xff1a;…

个人备案网站可以做淘宝客wordpress图片粘贴插件

下图是上海某校的新学期开学寄语&#xff1a;天将降大任于斯人也&#xff0c;必先删其微博&#xff0c;卸其 QQ&#xff0c;封其电脑&#xff0c;夺其手机&#xff0c;收其 ipad&#xff0c;断其 wifi&#xff0c;使其百无聊赖&#xff0c;然后&#xff0c;净面、理发、整衣&am…

如何构建个人网站深圳注册公司补贴政策

我已经写了很多有关InterruptedException和中断线程的文章 。 简而言之&#xff0c;如果您没有Future.cancel()调用Future.cancel()那么Future将终止待处理的get() &#xff0c;但还将尝试中断基础线程。 这是一个非常重要的功能&#xff0c;可以更好地利用线程池。 我还写信总…

国家城乡与住房建设部网站wordpress删除插件ftp

DaVinci是DSP和ARM 双核架构的SOC芯片。对芯片与外界的交互通过ARM端的Montavista Linux和相关驱动与应用程序来管理&#xff0c; DSP端只处理编解码相关的算法。DSP和ARM之间的通讯和交互是通过引擎(Engine)和服务器(Server)来完成的。1. 编解码引擎(Codec Engine) a. 核心引…

肯德基的网站建设wordpress 集群部署

介绍 顶顶通呼叫中心中间件机器人压力测试(mod_cit基于FreeSWITCH) 一、配置acl.conf 打开ccadmin-》点击配置文件-》点击acl.conf-》我这里是已经配置好了的&#xff0c;这里的192.168.31.145是我自己的内网IP&#xff0c;你们还需要自行修改 二、配置线路 打开ccadmin-&g…

君隆网站建设桂林哪里做网站

此篇是1-4 《半导体》的会和处啦&#xff0c;我们有了协议库&#xff0c;也有了通讯库&#xff0c;这不得快乐的玩一把~ 一、先创建一个从站&#xff0c;也就是我们的Equipment端 QT - guiCONFIG c11 console CONFIG - app_bundle CONFIG no_debug_release # 不会生…

网站服务器自己搭建网页设计入门基础知识

项目应用场景 面向自动驾驶场景的车道线检测场景&#xff0c;项目的特点是能够达到实时的车道线检测 项目效果&#xff1a; 项目细节 > 具体参见项目 README.md (1) 安装依赖 pip3 install -r requirements.txt (2) 测试图片 python tools/test_lanenet.py --weights_pat…

网站news怎么做旅游网页设计说明书

使用System.out.println()来调试.但是用这种方式开发项目部署到生产环境,会因为众多的控制台输出降低应用的性能.这时候Log4J就成为可平衡开发和部署应用的利器了. 使用指定的类XXX初始化日志对象&#xff0c;方便在日志输出的时候&#xff0c;可以打印出日志信息所属的类。 …

网站改域名备案通河县机场建设网站

​ ​ ​在遥感技术的应用中&#xff0c;图像处理是不可或缺的关键步骤。从消除各种辐射畸变和几何畸变&#xff0c;到利用增强技术突出景物的光谱和空间特征&#xff0c;再到进一步理解、分析和判别处理后的图像&#xff0c;这一过程为我们呈现了一幅幅更为真实、清晰的…

网站设计价钱网站美工

路径规划中的曲线插值是一种数学方法&#xff0c;它通过一系列离散的点生成一条平滑的曲线&#xff0c;这条曲线可以用于机器人导航、自动车辆驾驶、动画制作等领域。以下是一些常见的曲线插值方法&#xff1a; 线性插值&#xff1a; 线性插值是最简单的插值方法&#xff0c;它…

山西长治做网站公司有哪些北京网站制作济南

这篇博文是接着这个系列前面的博文&#xff0c;来讲如何实现医学图像三视图同步视图。我想到的一个思路是用Scrollbar来控制切面的改变&#xff0c;还有一个想法是在三维图像上取点&#xff0c;然后以这个点为切面中心更新三维视图。这篇博文主要介绍的就是第二个想法的三维图像…