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
网络库源码复现笔记(十四):base库的FileUtil.h
Muduo
网络库简介
muduo
是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:44
muduo
muduo
网络库源码复现笔记(十):base库的ThreadLocalSingleton.h
Muduo
网络库简介
muduo
是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:44
muduo
muduo
网络库源码复现笔记(十五):base库的ProcessInfo.h
Muduo
网络库简介
muduo
是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:44
muduo
muduo
网络库源码复现笔记(十一):base库的StringPiece.h
Muduo
网络库简介
muduo
是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:44
muduo
muduo
网络库源码复现笔记(三):base库的Exception.h
Muduo
网络库简介
muduo
是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:14
muduo
muduo
网络库源码复现笔记(一):base库的Timestamp.h
Muduo
网络库简介
muduo
是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:14
muduo
muduo
网络库源码复现笔记(九):base库的ThreadLocal.h
Muduo
网络库简介
muduo
是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:14
muduo
48.
muduo
学习笔记之example_聊天服务器例子
1.说明本例子是与Boost.Asio的示例代码中的聊天服务器功能类似的网络服务程序,主要目的是介绍如何处理分包,并初步涉及
Muduo
的多线程功能。
LvPartner
·
2020-08-16 11:04
muduo学习
47.
muduo
学习笔记之example_下载文件例子
说明这个例子源码位于作者的源代码文件夹下examples/filetransfer文件下下实现一个发送文件的命令行小工具,这个工具的协议很简单,在启动时通过命令行参数指定要发送的文件,然后在2021端口侦听,每当有新连接进来,就把文件内容完整地发送给对方。可以直接用telnet测试,只是服务器把文件发过去后,直接在控制台输出发送完就调用shutdownWrite()关闭了“写”方向的连接,保留了“
LvPartner
·
2020-08-16 11:04
muduo学习
muduo
网络库学习笔记(15):关于使用stdio和iostream的讨论
但是,在真实的项目中很少用到iostream(
muduo
网络库也不例外),本篇就对二者的优、缺点进行一个小结(主要考虑x86Linux平台,不考虑跨平台的可移植性,但是要考虑32-bit和
li27z
·
2020-08-16 11:59
muduo
C/C++
muduo
网络库源码学习————Timestamp.cc
今天开始学习陈硕先生的
muduo
网络库,moduo网络库得到很多好评,陈硕先生自己也说核心代码不超过5000行,所以我觉得有必要拿过来好好学习下,学习的时候在源码上面添加一些自己的注释,方便日后理解,首先看看
缱绻的西格玛
·
2020-08-16 11:25
muduo库源码学习
muduo
::TimerId、Timer、TimerQueue分析
Linux时间函数介绍linux中用以获取当前时间的的函数有定时函数timerfd介绍TimerId介绍TimerTimerQueueLinux时间函数介绍linux中用以获取当前时间的的函数有:time(2)/time_t(秒)ftime(3)/structtimeb(毫秒)gettimeofday(2)/structtimeval(微秒)clock_gettime(2)/structtimes
KangRoger
·
2020-08-16 11:50
muduo源码学习
46
muduo
库使用示例(五)
1.RTT计算2.代码#include#include#include#include#includeusingnamespace
muduo
;usingnamespace
muduo
::net;constsize_tframeLen
INGNIGHT
·
2020-08-16 11:38
muduo大并发服务器
Muduo
分析及总结(一)定时器(TimerQueue、TimerId、Timer)
一、类关系图TimerId:表示一个定时器的整体,有定时器和序列号。Timer:就是一个定时器的封装。TimerQueue:定时器的处理流程封装。二、时序图三、定时器的使用TimeQueue被封装在EventLoop中,定时器的使用要通过EventLoop/在时间戳为time的时间执行,0.0表示一次性不重复TimerIdEventLoop::runAt(constTimestamp&time,c
奔跑的哇牛
·
2020-08-16 11:59
Muduo
Muduo源码阅读总结
muduo
网络库net篇四:TCP(1)
这几天有去面试,回来之后,懈怠了。接着阅读代码吧!TcpClient类TcpClient类主要成员数据:EventLoop*loop_;ConnectorPtrconnector_;//avoidrevealingConnectorConnectionCallbackconnectionCallback_;MessageCallbackmessageCallback_;WriteCompleteC
视此虽近_邈若山河
·
2020-08-16 11:22
muduo网络库
浅析
muduo
库中的定时器设施
一个设计良好的定时器在服务端的应用程序上至关重要,
muduo
定时器的实现陈硕大牛在书中已经详细的谈过,笔者尝试从源码的角度解读定时器的实现,如果理解不对,欢迎指正。
uulogging
·
2020-08-16 11:50
muduo
muduo
库的摸索(1)
muduo
库的安装1.从https://github.com/chenshuo/
muduo
下载
muduo
文件。
熬夜是一种修养
·
2020-08-16 11:00
网络编程
muduo
网络库——日志
muduo
网络库也不例外。日志级别日志一般有5个正常级别:WARN警告信息表明潜在错误。
shenmingik
·
2020-08-16 11:21
剖析moduo网络库
muduo
网络库——noncopyable.h
从这里开始就是剖析
muduo
网络库项目了。出发!!!!noncopy.h这个头文件时其他类的基类。
shenmingik
·
2020-08-16 11:21
剖析moduo网络库
muduo
库学习篇-Timestamp类的学习 时间类
在平时的开发中,我们经常会遇到很多和时间有关系的代码,因此在
muduo
库中,作者也设计了Timestamp类,来对时间的使用头文件://UseofthissourcecodeisgovernedbyaBSD-stylelicense
Coldestmonth
·
2020-08-16 10:02
C++知识点
muduo库
Muduo
网络库源码分析(二) 定时器TimeQueue,Timer,TimerId
Muduo
的TimerQueue采用了最简单的实现(链表)来管理定时器,它的效率比不上常见的binaryheap的做法,如果程序中大量(10个以上)使用重复触发的定
YongApple
·
2020-08-16 10:22
muduo
muduo
网络库学习之Timestamp类、AtomicIntegerT 类封装中的知识点
一、Timestamp类封装classTimestamp:public
muduo
::copyable,publicboost::less_than_comparable类图如下:值语义:可以拷贝,拷贝之后
s1mba
·
2020-08-16 10:43
muduo网络库学习
muduo
网络库源码复现笔记(十九):TimeQueue定时器
Muduo
网络库简介
muduo
是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 10:10
muduo
muduo
网络库学习笔记(1):Timestamp类
muduo
网络库对时间戳Timestamp类也进行了封装。
li27z
·
2020-08-16 10:38
muduo
muduo
库Timestamp、Date、TimeZone分析
Timestamp类Date类TimeZone类先了解关于时间的一个结构体和获取时间的一个函数。#includestructtimeval{__time_ttv_sec;/*Seconds.*/__suseconds_ttv_usec;/*Microseconds.*/};tv_sec指从Epoc到现在的秒数。tv_usec指从Epoch到现在的微秒数。Epoch指的是一个特定的时间:1970-0
KangRoger
·
2020-08-16 10:06
muduo源码学习
muduo
网络库定时器的实现
nanosleep,clock_nanosleep,gettimer/settitimer,timer_create/timer_settime/timer_gettime/timer_delete,还有
muduo
FreeeLinux
·
2020-08-16 10:33
Muduo源码剖析
muduo源码剖析
muduo
网路库——InetAddress
这个类的主要作用就是封装socket。由于博主是在windows平台下,所以用的头文件时windows.h和Ws2tcpip.h。linux平台下应该用sys/socket.h、netinet/in.h和arpa/inet.h。InetAddress.h#pragmaonce/*linux下*#include//forsockaddr*#include*/#include#include//封装s
shenmingik
·
2020-08-16 10:16
剖析moduo网络库
cpp
c++
muduo
网络库——Timestamp
这个类主要是获取当前时间,以及把当前时间转换为字符串打印出来。Timestamp.h#pragmaonce#includeclassTimestamp{public:Timestamp();explicitTimestamp(int64_tmicroSecondsSinceEpoch);//获取当前时间staticTimestampnow();//int64转换为字符串std::stringtoS
shenmingik
·
2020-08-16 10:16
剖析moduo网络库
Linux——文件系统及相关操作命令
唉,本来想这阵子把
muduo
网络库剖析完。但是最近受了伤,去医院耽搁了。结果就是。。。
muduo
还没整完。今天先完成一下之前欠的债。Linux的文件体系磁盘为什么要讲磁盘呢?
shenmingik
·
2020-08-16 10:16
linux
linux
C++ 工程实践(1):慎用匿名 namespace
muduo
0.1.7中的
muduo
/base
weixin_33979745
·
2020-08-16 02:07
muduo
net库学习笔记6——缓冲区Buffer及TcpConnection的读写操作
感谢并转载自https://blog.csdn.net/sinat_35261315/article/details/78357586必须得多看几遍==在tcp的通信过程中,内核其实为tcp维护着一个缓冲区当调用write/send时,会向内核缓冲区中写入数据,内核和tcp协议栈负责将缓冲区中的数据发送到指定的目标位置。当有数据到达内核的tcp缓冲区中,如果开启了对套接字可读事件的监听,那么内核会
听说西佳佳难得很
·
2020-08-16 00:38
muduo源码
muduo
net库学习笔记5——服务器监听类Acceptor、Tcp连接(优雅关闭连接)、TcpConnection的建立与关闭
先简单例子:创建服务器(TcpServer)时,创建Acceptor,设置接收到客户端请求后执行的回调函数Acceptor创建监听套接字,将监听套接字绑定到一个Channel中,设置可读回调函数为Acceptor的handleRead服务器启动,调用Acceptor的listen函数创建监听套接字,同时将Channel添加到Poller中有客户端请求连接,监听套接字可读,Channel被激活,调用
听说西佳佳难得很
·
2020-08-16 00:38
muduo源码
muduo
net库
muduo源码解析
muduo
net库学习笔记4——事件驱动循环EventLoop、runInLoop和queueInLoop及对应唤醒
首先总体情况:每个
muduo
网络库有一个事件驱动循环线程池EventLoopThreadPool,线程池用在事件驱动循环上层,也就是事件驱动循环是线程池中的一个线程每个TcpServer对应一个事件驱动循环线程池每个线程池中有多个事件驱动线程
听说西佳佳难得很
·
2020-08-16 00:37
muduo源码
muduo
net库学习笔记7——用于创建服务器的类TcpServer
muduo
为每个EventLoop设计了runInLoop和queueInLoop函数用来将本该在其他线程执行的线程不安全函数放到它所属线程执行,从而达到线程安全。
听说西佳佳难得很
·
2020-08-16 00:06
muduo源码
muduo
net库学习笔记8——件驱动循环线程池EventLoopThreadPool
感谢并转载自https://blog.csdn.net/sinat_35261315/article/details/78376821线程池的作用体现在用户启动TcpServer服务器时创建大量子线程,每个子线程创建一个EventLoop并开始执行EventLoop::loop主线程的线程池保存着创建的这些线程和EventLoop当Acceptor接收到客户端的连接请求后返回TcpServer,T
听说西佳佳难得很
·
2020-08-16 00:06
muduo源码
evpp网络库代码分析(二)
上图是盗用自《Linux多线程服务端编程,使用
muduo
C++网络库》一书6.6.2章节(以及下面的时序图也是盗用该书的图)。
mkelehk
·
2020-08-15 23:59
TCP/IP网络
学习开源网络库
muduo
的一点心得
最近这一周在学习陈硕的
muduo
网络库。里面用到了好多回调函数,现在看到第八章,把其中核心的网络模型梳理了一下。
limwz
·
2020-08-15 17:55
muduo
muduo
多线程的处理
一般网络编程中为什么会用到多线程呢,无非是充分利用服务器多核的特性,提高网络并发量,吞吐率等。一般情况下,我们可以轻松想到这样的模型:主线程中监听socket连接事件,当产生新的连接时生成新的线程来处理。这种方式比较直接,但是有些不好处理的地方,例如线程的数量,真的是一个连接开一个线程吗。其实可以用线程池来解决这个问题,那说到线程池,那又如何解决线程与连接对应的问题,毕竟一个连接肯定是始终要在一个
Shonm
·
2020-08-14 22:20
muduo
linux网络编程
muduo
源码分析
evpp性能测试(1): 与
muduo
进行吞吐量测试
Byzieckey简介
muduo
是最近几年中国开源界里产生的优秀作品。它是由业内大牛陈硕实现的。
zieckey
·
2020-08-14 22:59
evpp
从零开始学写HTTP服务器(六)使用
muduo
网络库
muduo
源码中内嵌了一个简单的HTTPserver程序,源码见
muduo
/net/http。看了源码之后受益匪浅。
NearXDU
·
2020-08-14 22:38
Http协议
muduo
实现聊天服务器
muduo
实现聊天服务器
muduo
实现一个聊天室服务器,客户发送的消息将广播到连入的所有客户(包括自己)。
NearXDU
·
2020-08-14 22:38
muduo和多线程学习
muduo
源码分析之TcpConnection发送数据
(一)writeable事件的busyloop发送数据是要比接收数据更加麻烦的事情,因为它是一个主动发生的事情,考虑下面情况:水平触发模式(Level-Triggered);当socket可写时,会不停的触发socket可写的事件,如何处理?也就是说,如果发送缓冲不满,将不停触发socket可写事件,也就是说,poll/epoll调用不停返回,也就进入busyloop了。怎么解决这个问题,以前有一
NearXDU
·
2020-08-14 22:05
muduo和多线程学习
C++多线程
muduo
源码分析之EventLoop::runInLoop()函数
今天花了一天时间所学习的EventLoop::runInLoop()就打开
muduo
多线程编程的大门。
NearXDU
·
2020-08-14 22:05
muduo和多线程学习
C++多线程
muduo
源码分析之EventLoop、Channel、Poller的实现
作者一直强调的一个概念叫做oneloopperthread,撇开多线程不谈,本篇博文将学习,怎么将传统的I/O复用poll/epoll封装到C++类中。1.I/O复用复习使用poll/epoll进行I/O复用的一些编程内容。使用poll对于一个文件描述符fd来说,我们将通过structpollfd来设置我们关注的事件event,并在通过poll调用返回获取活跃的事件revent。比如说(伪代码):
NearXDU
·
2020-08-14 22:04
muduo和多线程学习
C++多线程
muduo
日志类的封装
1.日志的作用错误分为:1.编译错误2.运行时错误(逻辑错误,使用GDB调试的话,很难分析。如果使用日志,将运行过程通过日志打印出来)作用:1.开发过程中:调试错误更好的理解程序:在阅读别人的代码是,通过添加日志,可以理清程序的整个流程。2.运行过程中:诊断系统故障并处理记录系统运行状态2.日志涉及到4个文件:logging.hlogging.ccLogStream.hLogStream.cccl
yvhqbat
·
2020-08-14 22:07
muduo多线程编程
muduo
源码分析--我对
muduo
的理解
分为几个模块EventLoop、TcpServer、Acceptor、TcpConnection、Channel等对于EventLoop来说:他只关注里面的主驱动力,EventLoop中只关注poll,这类系统调用使得其成为Reactor模式,EventLoop中有属于这个loop的所有Channel,这个loop属于哪一个Server.几个类存在的意义:从应用层使用的角度来看,用户需要初始化一个
鱼思故渊
·
2020-08-14 22:35
muduo源码分析
muduo
源码分析--buffer中的线程安全
在栈上准备了一个65536字节的extrabuf(这个空间是在readFd函数内部定义的,说以说是内部栈空间,在这个函数返回以后这个栈空间就会消失,属于临时变量),然后利用readv(0来读取数据,iovec有两块,第一块指向MuuodBuffer中的writable字节,另一快指向栈上extrabuf。这样如果读入的数据不多,那么全部都读到Buffer中去了;如果长度超过Buffer的writa
鱼思故渊
·
2020-08-14 22:35
muduo源码分析
muduo源码分析
c++
线程
网络编程
muduo
源码分析---EventLoopThread
这个类只有两个对外接口的函数,一个构造函数,一个开始Loop的函数类的内部成员:一个Loop指针loop_(说明内部并没有实例化EventLoop)一个线程thread_一个锁Mutex一个条件变量cond_一个初始化回调callback_EventLoopThread初始化传递的是函数回调,同时开启一个线程,线程函数运行的就是实例化一个EventLoop,并让这个EventLoop进入到loop
鱼思故渊
·
2020-08-14 22:34
muduo源码分析
muduo源码分析
muduo
源码分析---EventLoop类
现在暂时记住TcpConnection是TcpServer中Acceptor关注的监听套接字上accept新连接后被初始化的一个对象,接下来分析下EventLoop这个东西才是真正驱动库的核心,是别的类(EpollPollerAcceptor)帮助他完成了库的功能,看看内部是怎么实现的。EventLoop:这个类中最重要的成员就是poller_,这个成员调用epoll_wait监听这个EventL
鱼思故渊
·
2020-08-14 22:34
muduo源码分析
muduo源码分析
muduo
源码分析--数据在
muduo
中的旅程
在实例化一个EvenLoop之后,就会有两个socketfd(这两个套接字分别归属于两个Channel中,一个是异步唤醒的wakeFd,一个timequeue初始化的fd)被添加到监听队列中数据发送的流程:数据的发送主要靠异步唤醒,当主IO线程接受到一个新的连接后,在TcpServer中实例化一个TcpConnection,然后这个新的连接被挂载到某个线程池(EventLoopThreapPool
鱼思故渊
·
2020-08-14 22:34
muduo源码分析
muduo源码分析
上一页
5
6
7
8
9
10
11
12
下一页
按字母分类:
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
其他