E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Muduo
muduo
库源码分析3——
muduo
事件循环分析
muduo
事件循环分析
muduo
网络库网络I/O模型为非阻塞reactor模式。使用linux的epoll或poll系统调用,轮寻多个socket,然后利用事先注册的事件句柄处理发生事件的套接字。
杨铮的技术博客
·
2023-04-12 00:10
c/c++开发
linux开发
网络开发
muduo
Muduo
源码剖析
1、总体流程1.acceptor进行listen阶段后,往channel中注册可读事件。2.acceptor可读处理中生成TcpConnection指针,通过EventloopThreadPool轮询出其中一个线程的eventloop,并将此TcpConnection的可读、可写等事件注册到自己Channel(eventLoop)中。3.每个EventLoop监听到具体channel的事件后,分析
YanWenCheng_
·
2023-04-12 00:08
muduo
c++
muduo
网络库源码学习————线程本地单例类封装
muduo
库中线程本地单例类封装代码是ThreadLocalSingleton.h如下所示://线程本地单例类封装//UseofthissourcecodeisgovernedbyaBSD-stylelicense
缱绻的西格玛
·
2023-04-12 00:38
muduo库源码学习
线程
网络
库
源码
muduo
网络库源码学习————线程特定数据
muduo
库线程特定数据源码文件为ThreadLocal.h//线程本地存储//UseofthissourcecodeisgovernedbyaBSD-stylelicense//thatcanbefoundintheLicensefile
缱绻的西格玛
·
2023-04-12 00:07
muduo库源码学习
线程
网络
库
源码
Muduo
库源码剖析(三)——获取线程tid方法
相关知识点__thread__thread修饰表示使用线程局部存储机制(threadlocal机制),即会为修饰的变量在当前线程存储一份copy,别的线程是看不到这个变量的修改__thread是GCC内置的线程局部存储设施,其存储效率可以和全局变量相比;__thread变量在每一个线程中都有一份独立实例,各线程值是互不干扰的。extern在C++中,extern是一个关键字,用于在当前文件以外的地
FuzhouJiang
·
2023-04-12 00:34
网络编程
Muduo
C/C++
c++
服务器
linux
Linux C++ 网络编程(二)
Linux网路编程比较经典的有Redis、
Muduo
、TeamTalk等开源项目。本文将以
Muduo
来介绍网络编程的框架,学习完
Muduo
再去学习其他框架就容易许多了。
奋斗_0268
·
2023-04-11 14:26
c++11编写线程池
写在前面由于最近在学习
muduo
网络库,需要许多的多线程和网络编程的知识。现在正好看到线程池的部分,就想着用C++11来编写一个线程池来加深自己的对线程池的理解。
%s无聊_我很
·
2023-04-09 20:04
c++
开发语言
muduo
网络编程库阅读
正文遵循Reactor模型,封装了EventLoop。有以下特点:利用MutexLockGuard->MutexLock->pthread_mutex_t控制EventLoop::pendingFunctors_的线程安全。回调函数,std::function和std::bind的大量应用。用于回调读/写/错误/关闭等事件。高度抽象。用TcpConnection封装Channel,后者封装了soc
不存在的里皮
·
2023-04-09 10:34
muduo
源码分析之回调模块
这次我们主要来说说
muduo
库中大量使用的回调机制。
shicoder
·
2023-04-08 10:14
Muduo
库源码剖析(八)——TcpServer类
TcpServer类要点TcpServer类的主要作用是,管理整个服务器,做如下的一些操作:管理accept(2)获得的TcpConnectionTcpServer是供用户直接使用的,生命期由用户控制设置mainLoop,并利用mainLoop进行新连接的管理初始化TcpServer对应的Acceptor用于监听新连接到来根据oneloopperthread的设计方案,setThreadNum设置
qq_42120843
·
2023-04-08 00:14
网络编程
Muduo
C/C++
c++
服务器
linux
Muduo
库源码剖析(九)——TcpConnection类
TcpConnection类要点TcpConnection表示的是“一次TCP连接”,它是不可再生的,一旦连接断开,这个TcpConnection对象就没啥用了。它的主要功能就是对成功连接服务器的客户连接connfd的封装。一个TcpConnection唯一对应一个Channel和SocketChannel处理事件的一系列回调就是在TcpConnection类中设置和实现的。TcpConnecti
qq_42120843
·
2023-04-08 00:14
Muduo
网络编程
C/C++
服务器
c++
linux
Muduo
库源码剖析(七)——缓冲区Buffer类
Buffer类要点由于
Muduo
库使用的是非阻塞IO模型,即每次send()不一定全发完,没发完的数据要用一个容器进行接收,所以必须要实现应用层缓冲区.缓冲区中各个指针和区域,下图要牢牢记住:其中prependablebytes
qq_42120843
·
2023-04-08 00:13
Muduo
网络编程
C/C++
c++
服务器
linux
【无标题】
Muduo
库源码剖析(十)——总结
Muduo
网络库的核心代码模块Channel封装fd的对应事件变化情况,和关注事件fd、events、revents、callbacks,两种channel:listenfd-acceptorChannel
qq_42120843
·
2023-04-08 00:58
Muduo
网络编程
C/C++
服务器
linux
c++
Muduo
库编译时提示错误deprecated: Please use ByteSizeLong() instead
错误提示如下解决方法在
muduo
库的CMakeList中添加编译选项-Wno-deprecated-declarations
qq_42120843
·
2023-04-05 01:13
Muduo
muduo
c++
muduo
库使用方法(一)
库安装
Muduo
库和boost库安装参考:Linux平台下
muduo
网络库源码编译安装
Muduo
库简介
muduo
库线程模型采用sub-Reactor模式,采用nonblockio+oneloopperthread
qq_42120843
·
2023-04-05 01:13
Muduo
C/C++
网络编程
服务器
c++
Linux C/C++网络编程实战-陈硕-笔记11-Roundtrip代码分析
代码UDP,twothreadsrecipes/tpc/roundtrip_udp.ccUDPwith
muduo
,singlethread
muduo
/examples/roundtrip/roundtrip_udp.ccTCPwith
muduo
muduo
Anita-Sun
·
2023-04-02 11:36
Linux
linux
网络
c语言
Muduo
源码刨析-完成服务器功能的TcpServer类
目录TcpServer类功能数据成员暴露的接口TcpServer类功能 TcpServer是
muduo
库中创建Tcp服务器的类,可以通过对:TcpServer的msgcallback进行设置,可以完成我们想要的服务器功能
c++终结者
·
2023-04-02 03:16
服务器
网络
muduo
库http源码分析
httprequestHTTP请求包含:requestline+header+body(header分为普通报头,请求报头与实体报头)header与body之间有一空行(CRLF)请求方法有:Get,Post,Head,Put,Delete等协议版本1.0、1.1常用请求头Accept:浏览器可接受的媒体(MIME)类型;Accept-Language:浏览器所希望的语言种类Accept-Enco
houcaihua
·
2023-04-02 01:17
http
网络协议
网络
muduo
网络库示例 (限制并发数和踢掉空闲连接)
限制服务器最大并发连接数(
Muduo
Manual.pdfP108)这个比较简单,在连接里面判断最大数量断开连接。
houcaihua
·
2023-04-02 01:17
网络
服务器
muduo
库net源码分析一(网络编程本质)
TCP网络编程最本质的是处理三个半事件1、连接建立:服务器accept(被动)接受连接,客户端connect(主动)发起连接。2、连接断开:主动断开(close、shutdown),被动断开(read返回0)。3、消息到达:文件描述符可读。4、消息发送完毕:这算半个。对于低流量的服务,可不必关心这个事件,这里的发送完毕是指数据写入操作系统缓冲区,将由TCP协议栈负责数据的发送与重传,不代表对方已经
houcaihua
·
2023-04-02 01:16
网络
tcp/ip
服务器
muduo
网络库源码分析
muduo
网络库源码分析发布一个基于Reactor模式的C++网络库01主从Reactor网络模型TcpClient客户端代码维护了Connector模块事件分发器主要由EventLoop类实现Eventloop
-特立独行的猪-
·
2023-04-01 23:18
计算机网络
网络
muduo
---C++网络编程库
陈硕
muduo
参考资料
muduo
源码剖析
Muduo
是一个基于Reactor模式的现代C++网络库,它采用非阻塞IO模型,基于时间驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序
Mr.liang呀
·
2023-03-31 20:18
TCP/IP网络编程
Linux高性能服务器
C++基础
c++
网络
架构
一、重写
muduo
网络库之服务器编程及测试
目录一、基于
muduo
网络库开发服务器程序的基本步骤1、组合TcpServer对象2、创建EventLoop事件循环对象的指针3、明确TCPServer构造函数需要的参数,输出ChatServer的构造函数
小鱼的编程之路
·
2023-03-31 11:03
Linux网络编程
重写muduo网络库
服务器
网络
运维
Muduo
网络库核心梳理
Muduo
网络库
Muduo
网络库本身并不复杂,是一个新手入门C++面向对象网络编程的经典实战项目。但是,新手在刚刚上手读代码的时候,非常容易陷入代码的汪洋大海,迷失方向。
wbvalid
·
2023-03-31 10:16
C++
c++
网络
编程语言
linux
muduo
库介绍
muduo
库是一个多线程服务器开发库
muduo
作者陈硕,现在在美国加州硅谷某互联网大公司工作,从事大规模分布式的可靠系统工程。
houcaihua
·
2023-03-31 10:10
服务器
运维
muduo
网络库示例(聊天服务器)
聊天服务器(
Muduo
Manual.pdfP66)examples/asio/chat/server.cc单线程examples/asio/chat/server_threaded.cc,多线程TcpServer
houcaihua
·
2023-03-31 10:10
服务器
网络
后端
c++
muduo
网络库源码详解(2) —— 以EchoServer为例子,从TcpServer的初始化说起
muduo
网络库源码详解(2)以EchoServer为例子,从TcpServer的初始化说起,分析ConnectionCallback回调函数是如何一步步设置到Channel里的主要参考了陈硕的书《Linux
爱好学习的青年人
·
2023-03-31 10:07
muduo
net库源码分析
网络
linux
[剖析
muduo
网络库]1.IO的阻塞和非阻塞、同步和异步
muduo
库作者陈硕老师原话:在处理IO的时候,阻塞和非阻塞都是同步IO,只有使用了特殊的API才是异步IO如果说的是业务层面上的一个逻辑处理是同步还是异步的时候,那么:同步:A操作等待B操作做完事情后
下酒番陪绅士
·
2023-03-31 10:02
muduo网络库
c++
网络
简单模仿下
muduo
网络库的封装
文章目录一、基础socket编程二、抽象与层次2.1InetAddress封装2.2Socket封装2.3Epoll封装2.4Channel封装2.5Acceptor封装2.6Connection封装2.7Threadpool封装2.8Eventloop封装2.9TCPserver封装三、小结一、基础socket编程网络编程的底层离不开socket,其处理流程表示如下:intsockfd=sock
阿杰的小鱼塘
·
2023-03-31 10:11
网络
C++
网络
服务器
c++
线程池
muduo
网络库—分布式系统知识精要
目录1、编译期常量2、定义类型并使用3、分布式网络问题——TCPIncast问题4、分布式网络问题——Fat-tree网络拓扑5、分布式系统和单机系统的区别6、如何做到负载均衡7、分布式系统时间与时间顺序违反直觉8、能随时重启进程作为程序设计目标9、如何重启10、分布式中心跳协议11、有状态服务和无状态服务12、SO_REUSEADDR13、socket的四个地址信息14、分布式系统中的进程标识1
贪睡的蜗牛
·
2023-03-31 10:33
C++11重写muduo网络库
分布式
网络
muduo
网络库使用入门
muduo
网络库介绍
muduo
网络库是陈硕大神开发的基于主从Reactor模式的,事件驱动的高性能网络库。
月本_诚
·
2023-03-31 10:59
#
C++
Linux
计算机网络
网络
服务器
c++
moudo网络库剖析
muduo
简介
muduo
是陈硕大神在Linux平台下基于C/C++开发的高性能网络库,在此基础上可以很方便的扩展,进行二次开发编写如http服务器。
小狗吠吠吠
·
2023-03-31 10:18
linux网络编程
网络
网络
linux
服务器
c++
架构
c++游戏服务器框架
c++游戏服务器框架skynet是一个开源的,轻量级的,为在线游戏服务器打造的框架skynet
muduo
是一个基于Reactor模式的C++网络库
muduo
boostasio是一个异步的网络框架官网:http
lucky九年
·
2023-03-30 20:30
c++
服务器
c++
游戏
muduo
源码学习(四) 实现TCP网络库(中)
runInLoop相关在之前得文章中提到了EventLoop::runInLoop(),该函数用于在EventLoop的IO线程执行某个用户的任务回调,源码如下:voidEventLoop::runInLoop(constFunctor&cb){if(isInLoopThread()){//判断是否在当前IO线程cb();//同步调用}else{queueInLoop(cb);//加入队列}}若用
荏苒何从cc
·
2023-03-28 12:58
muduo
中的reactor
muduo
使用的是reactor模式,关于
muduo
的其他内容不做过多赘述。此文作为自己阅读
muduo
源码的笔记,目的在于用直白的语言记录阅读时的理解。
muduo
网络库,分为两个部分。
犭虫彳亍口苗
·
2023-03-27 17:18
如何学会网络编程
经过工作一年的积累与最近
muduo
网络库在业务中的实际应用。总算把网络编程入门了,并且基本看完了整个
muduo
库,收获颇多。
三妖寺方丈
·
2023-03-24 21:33
Muduo
_Day7(Connector,TcpClient)
Connector类Connector只负责建立socket连接,不负责创建TcpConnection对象,它的newConnectionCallback回调的参数是socket文件描述符.
Muduo
中的
angel_贝贝
·
2023-03-22 21:47
muduo
这本书该如何看
muduo
库有作者专门的一本书来讲。总体来说,这本书需要一定的c++功底,网络编程的基本功底,才能看懂,否则读起来很吃力,很乏味。应该说是中等程序员的书目。
三妖寺方丈
·
2023-03-22 10:25
Muduo
_Day 3(网络库)
多线程与并发服务器:(1)循环式(iterative)服务器:每处理一次请求,就关闭一次,使用的是TCP短连接,只使用单线程模式,没法充分发挥多核CPU的优势.(2)惊群现象:当一个客户端连接过来时,有多个子进程处于accept状态,多个进程都有返回,但只有一个进程返回成功.TCP网络编程的本质是处理三个半事件:连接建立:服务器accept(被动)接受连接,客户端connect(主动)发起连接连接
angel_贝贝
·
2023-03-16 05:05
Muduo
_Day5(EventLoopThread和EventLoopThreadpoll)
EventLoopThread类一个程序可以有不止一个IO线程,IO线程也不一定是主线程,我们可以在任何一个线程创建并运行Eventloop.且任何一个线程只要创建并运行了Eventloop,就称该线程为IO线程.EventloopThread类封装了IO线程,该类创建了一个线程,并在线程函数中创建了一个Eventloop对象,然后将其地址赋值给loop_成员变量,然后notify()条件变量,唤
angel_贝贝
·
2023-03-13 05:56
C++多线程多进程服务器
muduo
函数查询表(一)
本文记录下本人在写服务器过程中遇到的一些相关函数,其具体详解参考给定的参考网址,本文只是做个记录,便于以后再次查询相关函数:1.(setsockopt(listen_fd,SOL_SOCKET,SO_REUSEADDR,&optval,sizeof(optval))==-1)允许重用地址!!!消除bind时"Addressalreadyinuse"错误http://www.cnblogs.com/
追捕的风
·
2023-02-05 10:12
c++服务器
c++
服务器
多线程
多进程
Linux
如何基于protobuf实现一个极简版的RPC(转载)
基于protobuf的RPC可以说是五花八门,其中不乏非常优秀的代码例如brpc,
muduo
-rpc等。protobuf实现了序列化部分,并且预留了RPC接口,但是没有实现网络交互的部分。
xupeng1644
·
2023-02-03 15:15
C/C++
protobuf
rpc
Muduo
_Day 2(
muduo
基础库)
(1)父子进程之间的继承:fork()会产生一个和父进程完全相同的子进程,但子进程在此后会exec系统调用,出于效率考虑,linux中引入了“写时拷贝”copyonwrite技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。在fork之后exec之前两个进程用的是相同的物理空间(内存区),子进程的代码段、数据段、堆栈都是指向父进程的物理空间,也就是说,两者的虚拟
angel_贝贝
·
2023-01-26 17:16
看
muduo
视频记录
自2021/7/15开始1.大并发服务器开发课程介绍如果任务服务器的任务相同,就应该让应用服务器自动去取任务,这样比较公平。任务服务器不应该只有一台,也要做负载均衡最终要做到:全面解耦合,哪个层面性能不足,就在那个层面增加服务器。应用服务器的负载均衡增加一个任务服务器来实现,任务服务器可以监视应用服务器的负载,CPU高、I0高、并发高、内存换页高查询到这些信息之后,选取负载最低的服务器分配任务。应
ZWRMFW
·
2023-01-26 11:25
谈谈
muduo
库的销毁连接对象——C++程序内存管理和线程安全的极致体现
removeConnectionTcpServer::removeConnectionInLoopTcpConnection::connectDestroyed总结一点其他想法前言网络编程的连接断开一向比连接建立复杂的多,这一点在陈硕写的
muduo
_夕
·
2022-12-31 13:46
c++
网络
muduo
库
前言这个假期跟着教学视频手写了
muduo
库,该
muduo
库是经过改造,不依赖boost库,用C++11重构。手写
muduo
库的过程虽然有些枯燥,但学会的东西确实也很多。
蜗牛不慵懒
·
2022-12-02 22:37
笔记
c++
后端
muduo
网络库设计与实现(二)
muduo
网络库设计与实现(一)文章目录
muduo
网络库设计与实现(一)baseInetAddressSocket单线程网络库AcceptorTcpServerTcpConnectionBufferechoserver
Cyril_Xu
·
2022-12-02 22:36
muduo
多机协作网络编程示例一:单词计数及排序
去年我写了《
Muduo
网络编程示例》系列文章,这些文章已经收入《Linux多线程服务端编程:使用
muduo
C++网络库》一书。
吴新强
·
2022-12-02 22:06
C#
hash表的应用
网络
国庆弯道超车(手写
Muduo
库剖析核心代码及编程思想)
手写
muduo
库前言Multi-Reactor的三大组件Channel类poller/EpollpollerEventLoopThread&ThreadEventLoop&ThreadEventPoolAcceptor
一个山里的少年
·
2022-12-02 22:35
网络
tcp/ip
服务器
第三方库——
muduo
网络库的使用
目录
muduo
网络库介绍使用
muduo
进行server端编程参考文献
muduo
网络库介绍我觉得我的介绍肯定是没有陈硕大神介绍的完整,所以我这里直接贴上陈硕的原文链接:
muduo
网络库在这里,我将只讨论
muduo
shenmingik
·
2022-12-02 22:35
#
网络
epoll
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他