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
网络库源码分析之对socket及其相关操作的封装
主要涉及到的类和实现文件有:Endian.h提供了字节序转换的函数。Socket.h/Socket.ccsocketfd的封装,提供了绑定地址、开始listen、接受连接等操作,并可设置套接字选项。InetAddress.h/InetAddress.cc套接字地址的封装,提供了多种方式初始化一个地址,还提供方法从地址中拿到ip和port。SocketsOps.h/SocketsOps.cc封装了s
Tanswer_
·
2020-08-14 16:51
Linux网络编程
Muduo网络库源码分析
muduo
socket
inetaddr
字节序转换
socket相关操作
Muduo
网络编程示例之九:简单的消息广播服务
Muduo
网络编程示例之九:简单的消息广播服务陈硕(giantchen_AT_gmail)Blog.csdn.net/Solsticet.sina.com.cn/giantchen这是《
Muduo
网络编程示例
陈硕
·
2020-08-14 16:42
muduo
Muduo
网络编程示例之一:五个简单 TCP 协议
陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice这是《
Muduo
网络编程示例》系列的第一篇文章。
陈硕
·
2020-08-14 16:42
muduo
c++
muduo
网络库学习之
muduo
_http 库涉及到的类
1、httprequest:requestline+header+body(header分为普通报头,请求报头与实体报头)header与body之间有一空行(CRLF)请求方法有:Get,Post,Head,Put,Delete等协议版本1.0、1.1常用请求头Accept:浏览器可接受的媒体(MIME)类型;Accept-Language:浏览器所希望的语言种类Accept-Encoding:浏
s1mba
·
2020-08-14 16:10
muduo网络库学习
muduo
网络库学习之
muduo
_inspect 库涉及到的类
muduo
inspect库通过HTTP方式为服务器提供监控接口,现在只实现进程相关信息的监控,通过成员ProcessInspector实现。
s1mba
·
2020-08-14 16:10
muduo网络库学习
muduo
网络库学习之EventLoop(四):EventLoopThread 类、EventLoopThreadPool 类
1、EventLoopThread(IO线程类)任何一个线程,只要创建并运行了EventLoop,都称之为IO线程IO线程不一定是主线程
muduo
并发模型oneloopperthread+threadpool
s1mba
·
2020-08-14 16:10
muduo网络库学习
muduo
网络库学习之Logger类、LogStream类、LogFile类封装中的知识点
一、Logger类、LogStream类1、日志作用开发过程中:调试错误更好的理解程序运行过程中:诊断系统故障并处理记录系统运行状态2、日志级别TRACE指出比DEBUG粒度更细的一些信息事件(开发过程中使用)DEBUG指出细粒度信息事件对调试应用程序是非常有帮助的。(开发过程中使用)INFO表明消息在粗粒度级别上突出强调应用程序的运行过程。WARN系统能正常运行,但可能会出现潜在错误的情形。ER
s1mba
·
2020-08-14 16:09
muduo网络库学习
初识
muduo
:实现一个echo服务器
muduo
是陈硕写的一个网络库。
PinkFriday
·
2020-08-14 16:44
网络编程
Muduo
网络库源码分析(五)Acceptor和TcpServer类
Endian.h:封装了字节序转换函数(全局函数,位于
muduo
::net::sockets名称空间中)。SocketsOps.h/SocketsOps.cc:封装了socket相关系统调用。
NK_test
·
2020-08-14 16:58
Linux基础及编程
Muduo源码分析
21.
muduo
学习笔记之net_Callback.{h&cc}
1.说明这个主要是回调函数类型声明吧这个文件没有类,主要是一些声明和类型定义分两个命名空间,
muduo
和net2.
muduo
命名空间1.声明usingstd::placeholders::_1;C++11
LvPartner
·
2020-08-14 16:44
muduo学习
muduo
网络库学习笔记(3):Thread类
muduo
网络库采用了基于对象的编程思想来封装线程类。类图如下:变量numCreated_表示创建的线程个数,类型为AtomicInt32,用到了我们上篇所说的原子性操作。
li27z
·
2020-08-14 16:37
muduo
muduo
网络库学习笔记(0):面向对象编程风格和基于对象编程风格的比较
我们通过对一个线程类的封装来比较这二者的不同。面向对象编程风格使用面向对象编程风格封装线程类,一般这么做:写一个Threadbaseclass,含有(纯)虚函数Thread::run(),然后应用程序派生一个derivedclass,覆写run()。程序里的每一种线程对应一个Thread的派生类。类图如下:代码如下:文件名:Thread.h--头文件#ifndef_THREAD_H_#define
li27z
·
2020-08-14 16:37
C/C++
muduo
muduo
网络库学习笔记(8):高效日志类的封装
muduo
日志类封装细节(1)日志消息有多种级别(level),如TRACE、DEBUG、INFO、WARN、ERROR、FATAL。日志的输出级别在运行时可调。
li27z
·
2020-08-14 16:37
muduo
muduo
网络库学习笔记(6):单例类(线程安全的)
muduo
用pthread_once实现了线程安全的Singleton。
li27z
·
2020-08-14 16:06
muduo
muduo
::Logging、LogStream分析
下面是Logging.h的源码namespace
muduo
{classTimeZone;//forwarddeclarationclassLogger{public:enumLogLevel//用来设置不同的日志级别
KangRoger
·
2020-08-14 16:30
muduo源码学习
muduo
::Thread类分析
在
muduo
/base/thread.{h,c
KangRoger
·
2020-08-14 16:30
muduo源码学习
19
muduo
_base库源码分析(十)
1.ThreadLocalSigleton类图每一个线程都有一个T类型的单例对象线程特定数据:(1)POD类型可以使用__thread(2)非POD类型使用pthread_key_create2.代码ThreadLocalSingleton.h//UseofthissourcecodeisgovernedbyaBSD-stylelicense//thatcanbefoundintheLicense
INGNIGHT
·
2020-08-14 16:19
muduo大并发服务器
29
muduo
_net库源码分析(五)
1.进程(线程)wait/notify(1)pipe(2)socketpair(3)eventfd,eventfd是一个比pipe更高效的线程间事件通知机制,一方面它比pipe少用一个filedescripor,节省了资源;另一方面,eventfd的缓冲区管理也简单得多,全部“buffer”只有定长8bytes,不像pipe那样可能有不定长的真正buffer。intcreateEventfd(){
INGNIGHT
·
2020-08-14 16:19
muduo大并发服务器
34
muduo
_net库源码分析(十)
//http://code.google.com/p/
muduo
/////UseofthissourcecodeisgovernedbyaBSD-stylelicense//thatcanbefoundintheLicensefile
INGNIGHT
·
2020-08-14 16:19
muduo大并发服务器
30
muduo
_net库源码分析(六)
1.EventThread(1)任何一个线程,只要创建并运行了EventLoop,都称之为IO线程(2)IO线程不一定是主线程(3)
muduo
并发模型oneloopperthread+threadpool
INGNIGHT
·
2020-08-14 16:19
muduo大并发服务器
11
muduo
_base库源码分析(二)
1.为什么需要原子性操作(1)x++;(2)从内存中读x的值到寄存器中,对寄存器加1,再把新值写回x所处的内存地址2.gcc原子性操作(1)原子自增操作type__sync_fetch_and_add(type*ptr,typevalue)(2)原子比较和交换(设置)操作type__sync_val_compare_and_swap(type*ptr,typeoldvaltypenewval)bo
INGNIGHT
·
2020-08-14 16:18
muduo大并发服务器
15
muduo
_base库源码分析(六)
////Author:ShuoChen(chenshuoatchenshuodotcom)#ifndef
MUDUO
_BASE_BOU
INGNIGHT
·
2020-08-14 16:18
muduo大并发服务器
Muduo
分析及总结(六)TcpConnection
一、类关系图首先看TcpConnection在整个
Muduo
结构中的关系,如下图TcpConnection是整个网络库的核心,封装一次Tcp连接,注意它不能发起连接。
奔跑的哇牛
·
2020-08-14 16:39
Muduo
Muduo源码阅读总结
muduo
库的事件框架
TCP网络编程本质TCP网络编程编程本质是处理三个半事件。1.连接建立:服务器accept(被动)接收连接,客户端connect(主动)发起连接。2.连接断开:主动断开(close、shutdown),被动断开(read返回0)3.消息到达:文件描述符可读4.消息发送完毕:这算半个事件。对于低流量的服务,可以不关心这个事件。这里的发送完毕是数据写入操作系统缓冲区,将由TCP协议栈法则数据的发送与重
FreeeLinux
·
2020-08-14 15:02
Muduo源码剖析
muduo源码剖析
muduo
一个简单echo服务器的分析
muduo
一个简单echo服务器的分析前两篇写
muduo
网络框架线程处理,这两篇通过一个小的echo服务器来完整说明这个网络事件处理的流程。
Shonm
·
2020-08-14 15:47
linux网络编程
网络编程
muduo
muduo
源码分析
muduo
源码分析——EventLoop
先简单说一下,因为我参考的是flamingo的代码,会和
muduo
有一点点出入,但是基本是差不多,因为前者是基于后者开发的,可能有一点点改动。
不安的前方
·
2020-08-14 15:21
c++网络编程
muduo
源码分析——Channel
本文简单分析
muduo
的Channel类,我在学习
muduo
的时候,因为一开始看的很晕,后来找了很多文章来学习,这个Channel有很多种叫法“事件分发器”,“I/O选择器”等,但我还是喜欢叫它通道,为什么呢
不安的前方
·
2020-08-14 15:49
c++网络编程
muduo
源码分析——TcpConnection
muduo
中的TcpConnection算是整个框架中的大头吧,因为每个客户端连接对应一个Channel和一个TcpConnection,而之前已经说了,Channel只是一个通道,那么对于客户端连接的各种处理
不安的前方
·
2020-08-14 15:49
c++网络编程
muduo
源码分析——EventLoopThreadPool和EventLoopThread
现在开始写EventLoop相关的类,我决定先写EventLoopThreadPool。因为从拥有的关系上来看,TcpServer拥有一个EventLoopThreadPool,然后EventLoopThreadPool拥有若干个EventLoopThread(由TcpServer初始化时决定)。至于是不是直接拥有EventLoop,我觉得吧,可以说拥有,也不好说,因为它并没有去操作这些Event
不安的前方
·
2020-08-14 15:49
c++网络编程
muduo
网络编程
muduo
源码分析——TcpServer和Acceptor
这篇文章用于分析
muduo
的TcpServer类和Acceptor类,原本打算将TcpConnection也放到这里一起聊的,但是那个太多啦,一篇文章太长会让人读的很不舒服把。
不安的前方
·
2020-08-14 15:49
c++网络编程
**10种大并发服务器设计方案与
muduo
库网络模型使用
常见并发服务器方案循环式/迭代式服务器:短链接缺点:无法充分利用多核CPU,不适合执行时间较长的服务并发式服务器:长连接(1)主进程负责监听client的连接请求(2)当连接建立后,新fork一个子进程与client通信适应场景:适用于执行时间比较长的服务prefork服务器(1)父进程进行listen,然后先fork出大量的子进程===>此时,父子进程都listen客户端的到来(2)当clien
guojawee
·
2020-08-14 15:59
Muduo库源码剖析
muduo
_base代码剖析之Socket API封装
一、Endian.h封装了字节序转换函数(全局函数,位于
muduo
::net::sockets命名空间中)namespace
muduo
{namespacenet{namespacesockets{主机字节序
guojawee
·
2020-08-14 15:28
Muduo库源码剖析
muduo
的windows下的编译
辗辗转转,最后基本上也就筛选出这么几个优质代码
muduo
leveldbtinyhttp随书代码和作者的开源GITH
weixin_30675967
·
2020-08-14 15:15
(14)
muduo
_base库源码分析:MutexLock类,MutexLockGuard类,Condition类
文章目录1.MutexLock类图,MutexLockGuard类图2.Mutex.h分析3.Mutex_test.cc分析4.测试1.MutexLock类图,MutexLockGuard类图MutexLock类图MutexLockGuard类图,此类更加常用,使用RAII技法封装MutexLock类与MutexLockGuard类的lock方法和unlock方法说明voidf(){mutex.l
简单生活,简单爱
·
2020-08-14 15:28
开源代码学习
(11)
muduo
_base库源码分析:原子性
文章目录1.为什么需要原子性操作2.Atomic.h代码分析3.原子性操作可以实现无锁队列4.
muduo
的编译选项5.Types.h的研究1.为什么需要原子性操作x++;(1)从内存中读x的值到寄存器中
简单生活,简单爱
·
2020-08-14 15:27
开源代码学习
(10)
muduo
_base库源码分析:Timestamp.cc和Timestamp.h
文章目录1.Timestamp.h的研究2.Timestamp.cc的研究2.相关测试代码1.Timestamp.h的研究Timestamp类图如下,参考下即可位置:
muduo
\base\Timestamp.h
简单生活,简单爱
·
2020-08-14 15:27
开源代码学习
(13)
muduo
_base库源码分析:Thread类实现
文章目录1.线程标识符2.Thread类图3.Thread类相关代码学习4.相关测试5.多线程多进程的死锁案例1.线程标识符Linux中,每个进程有一个pid,类型pid_t,由getpid()取得。Linux下的POSIX线程也有一个id,类型pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即不同进程中的线程可能有相同的id)。Linux中
简单生活,简单爱
·
2020-08-14 15:27
开源代码学习
(7)
muduo
介绍
文章目录1.
muduo
的介绍的总结2.
muduo
的安装的总结1.
muduo
的介绍的总结不支持UDP,只支持TCP。
简单生活,简单爱
·
2020-08-14 15:27
开源代码学习
(12)
muduo
_base库源码分析:Exception类实现
文章目录1.Exception类实现2.代码测试1.Exception类实现类图12\j
muduo
\
muduo
\base\Exception.cc//UseofthissourcecodeisgovernedbyaBSD-stylelicense
简单生活,简单爱
·
2020-08-14 15:27
开源代码学习
(第6章)
muduo
网络库
文章目录1.
muduo
2.线程模型3.TCP网络编程本质1.
muduo
muduo
是基于Reactor模式的网络库,核心是:事件循环EventLoop,用于相应计时器和IO事件
muduo
采用基于对象object-based
简单生活,简单爱
·
2020-08-14 15:27
开源代码学习
Muduo
日志系统
本文是笔者通过学习
Muduo
多线程网络程序开发库日志模块所做出的总结,文中大量引用了陈硕所著的《Linux多线程服务端编程:使用
muduo
C++网络库》以及luotuo44《
muduo
日志库学习》博客中的内容
要回杭州的李同学
·
2020-08-14 15:54
发布一个基于 Reactor 模式的 C++ 网络库
发布一个基于Reactor模式的C++网络库陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice2010Aug30本文主要介绍
muduo
网络库的使用。
陈硕
·
2020-08-14 15:48
muduo
c++
多线程
muduo
库学习笔记七:base库之Mutex
Mutex互斥量:
muduo
库中的封装为MutexLock类与MutexLockGuard类。
麻子来了
·
2020-08-14 15:46
moduo源码阅读笔记
整理下
muduo
主要类的实现思路
文章目录TcpConnectionBufferLogThreadPool定时器限制并发连接TcpConnection唯一一个用智能指针控制声明周期的类,找了好久才找到什么时候结束。在TcpServer里面会有保存Conn的一个智能指针,所以引用计数一直为1。当你收到对端关闭的消息的时候,因为是在handleEvent()里面,不能直接析构,所以TcpConnection::handleClose(
Immortal_s
·
2020-08-14 15:07
探索muduo
学习
muduo
(win平台的实现,未完成)
代码在github:https://github.com/pei2017/
muduo
_exercise/tree/master/
muduo
_five/net问题1.
p2016
·
2020-08-14 15:01
muduo网络库
Socket
muduo
_net库源码分析(26-1
Channel是selectableIOchannel,负责注册与响应IO事件,它不拥有filedescriptor。Channel是Acceptor、Connector、EventLoop、TimerQueue、TcpConnection的成员,生命期由后者控制。时序图EventLoop头文件eventloop.h//Copyright2010,ShuoChen.Allrightsreserve
laohan_
·
2020-08-14 15:44
Muduo
Net
Library
【
muduo
】base篇---ThreadLocal
一、线程特定数据和线程本地存储 线程本地数据(局部数据/私有数据/线程中特有的线程存储),和__thread类似,虽然__thread简单,但容易不正确使用。 线程存储:每个线程都有各自的线程存储,直到线程被销毁(或者主动调用函数销毁)。线程存储既不是全局变量(不同的线程有各自的线程存储,而且也不能相互访问)、也不是static变量(线程函数中的static变量可以被多个线程修改)也不是局部变
lx青萍之末
·
2020-08-14 15:26
#
Muduo网络库
muduo
网络库——实现Boost.Asio聊天服务器:完整代码+注释
比如两条消息“hello”和“chenshuo":打包的代码把stringmessage打包为
muduo
::net::Buffer,并通过conn发送。
amoscykl
·
2020-08-14 15:44
moduo网络库
muduo源码分析
muduo
网络库——五个简单编程示例
五个简单TCP示例:echo,discard,chargen,daytime,timeecho:回显服务,把收到的数据发回客户端。discard:丢弃所有收到的数据。chargen:服务端accept连接之后,不停地发送测试数据。daytime:服务端accept连接之后,以字符串形式发送当前时间,然后主动断开连接。time:服务端accept连接之后,以二进制形式发送当前事件,然后主动断开连接;
amoscykl
·
2020-08-14 15:13
moduo网络库
muduo源码分析
muduo
-- base分析
1.Atomic.h//原子操作接口封装,C++11已经实现atomic相关接口,更简洁些,推荐使用C++11内实现std::atomiccur_max_sqlId_;参考:https://zh.cppreference.com/w/cpp/atomic/atomic2.CountDownLatch.h//作类似于起跑线机制,值得学习一下//latchdown之后然后调用wait.等待最后一个线程
YongApple
·
2020-08-14 15:13
上一页
16
17
18
19
20
21
22
23
下一页
按字母分类:
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
其他