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网络库
学习知识点总结
static_cast(expression)该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。②用于基本数据类型
chudongfang2015
·
2017-07-20 11:37
Muduo网络库
muduo网络库
学习笔记(15):关于使用stdio和iostream的讨论
但是,在真实的项目中很少用到iostream(
muduo网络库
也不例外),本篇就对二者的优、缺点进行一个小结(主要考虑x86Linux平台,不考虑跨平台的可移植性,但是要考虑32-bit和
Leeds1993
·
2017-05-28 23:00
Muduo之Acceptor源码分析笔记
Muduo之Acceptor源码解析前面我们大概介绍了
Muduo网络库
的整体架构以及Reactor模式的一般架构,从这里就开始分析
Muduo网络库
中用到的一些类。
hejiajie1989
·
2017-05-04 22:01
linux编程
网络编程
Muduo学习笔记
6-
muduo网络库
简介
Pleaseindicatethesource:http://blog.csdn.net/gaoxiangnumber1Welcometomygithub:https://github.com/gaoxiangnumber16.4使用教程muduo支持并发非阻塞TCP网络编程,每个IO线程是一个事件循环,把IO事件分发到回调函数上。6.4.1TCP网络编程本质论传统模式:主动调用recv(2)接收
gaoxiangnumber1
·
2016-11-09 16:00
github
函数
网络
网络编程
库
boost::function与回调函数
boost::function与回调函数这是我在学习陈硕
muduo网络库
过程中记录的关于C++的知识碎片,对muduo感兴趣的同学可以加入QQ群365972535一起讨论:利用boost::function
陈帅陪马大大为软件献青春
·
2016-07-24 23:54
c++
boost
发布一个基于 Reactor 模式的 C++ 网络库
发布一个基于Reactor模式的C++网络库陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice2010Aug30本文主要介绍
muduo网络库
的使用。
Lina_ACM
·
2016-06-30 19:00
[置顶] 使用Muduo完成数独和八数码问题求解服务器
在剖析完
Muduo网络库
源码之后,我们试着完成一个高效的数独和八数码问题求解服务器。先说说为什么要选择这两个问题?数独问题一直是陈硕老师很喜欢的问题,在
muduo网络库
中多次提到并有示例。
NK_test
·
2016-05-28 21:00
服务器
网络编程
数独
八数码
muduo
[置顶] 使用Muduo完成数独和八数码问题求解服务器
在剖析完
Muduo网络库
源码之后,我们试着完成一个高效的数独和八数码问题求解服务器。先说说为什么要选择这两个问题?数独问题一直是陈硕老师很喜欢的问题,在
muduo网络库
中多次提到并有示例。
NK_test
·
2016-05-28 21:00
服务器
网络编程
数独
八数码
muduo
Muduo网络库
源码分析(六)TcpConnection 的生存期管理
TcpConnection是使用shared_ptr来管理的类,因为它的生命周期模糊。TcpConnection表示已经建立或正在建立的连接,建立连接后,用户只需要在上层类如TcpServer中设置连接到来和消息到来的处理函数,继而回调TcpConnection中的 setConnectionCallback和setMessageCallback函数,实现对事件的处理。用户需要关心的事件是有限的,
NK_test
·
2016-04-22 15:00
源码
linux
网络
muduo
tcpConnection
Muduo网络库
源码分析(五)Acceptor和TcpServer类
首先,我们先提一下对Socket的封装(不复杂,所以简单说一下)。Endian.h: 封装了字节序转换函数(全局函数,位于muduo::net::sockets名称空间中)。SocketsOps.h/SocketsOps.cc:封装了socket相关系统调用。Socket.h/Socket.cc(Socket类): 用RAII方法封装socketfiledescriptor。InetAddress
NK_test
·
2016-04-16 01:00
多线程
linux
acceptor
muduo
Muduo网络库
源码分析(五)Acceptor和TcpServer类
首先,我们先提一下对Socket的封装(不复杂,所以简单说一下)。Endian.h: 封装了字节序转换函数(全局函数,位于muduo::net::sockets名称空间中)。SocketsOps.h/SocketsOps.cc:封装了socket相关系统调用。Socket.h/Socket.cc(Socket类): 用RAII方法封装socketfiledescriptor。InetAddress
NK_test
·
2016-04-16 01:00
多线程
linux
acceptor
muduo
Muduo网络库
源码分析(四)EventLoopThread和EventLoopThreadPool的封装
muduo的并发模型为oneloopperthread+threadpool。为了方便使用,muduo封装了EventLoop和Thread为EventLoopThread,为了方便使用线程池,又把EventLoopThread封装为EventLoopThreadPool。所以这篇博文并没有涉及到新鲜的技术,但是也有一些封装和逻辑方面的注意点需要我们去分析和理解。EventLoopThread任何
NK_test
·
2016-04-15 13:00
多线程
源码
linux
muduo
Muduo网络库
源码分析(四)EventLoopThread和EventLoopThreadPool的封装
muduo的并发模型为oneloopperthread+threadpool。为了方便使用,muduo封装了EventLoop和Thread为EventLoopThread,为了方便使用线程池,又把EventLoopThread封装为EventLoopThreadPool。所以这篇博文并没有涉及到新鲜的技术,但是也有一些封装和逻辑方面的注意点需要我们去分析和理解。EventLoopThread任何
NK_test
·
2016-04-15 13:00
多线程
源码
linux
muduo
Muduo网络库
源码分析(三)线程间使用eventfd通信和EventLoop::runInLoop系列函数
先说第一点,线程(进程)间通信有很多种方式(pipe,socketpair),为什么这里选择eventfd?eventfd是一个比pipe更高效的线程间事件通知机制,一方面它比pipe少用一个filedescripor,节省了资源;另一方面,eventfd的缓冲区管理也简单得多,全部“buffer”只有定长8bytes,不像pipe那样可能有不定长的真正buffer。最重要的一点:当我们想要编写并
NK_test
·
2016-04-12 23:00
源码
linux
muduo
eventfd
Muduo网络库
源码分析(三)线程间使用eventfd通信和EventLoop::runInLoop系列函数
先说第一点,线程(进程)间通信有很多种方式(pipe,socketpair),为什么这里选择eventfd?eventfd是一个比pipe更高效的线程间事件通知机制,一方面它比pipe少用一个filedescripor,节省了资源;另一方面,eventfd的缓冲区管理也简单得多,全部“buffer”只有定长8bytes,不像pipe那样可能有不定长的真正buffer。最重要的一点:当我们想要编写并
NK_test
·
2016-04-12 23:00
源码
linux
muduo
eventfd
网络编程总结(一)
这几天在看
muduo网络库
,顺便第二次详细的精读一下《unix网络编程》。在这里从最基础的编程模型开始,记录一下一步步改进程序的过程和细碎的知识点。首先看一下启动一个服务器程序所必须的库函数。
lijun538
·
2016-04-05 22:09
网络编程
网络编程总结(一)
这几天在看
muduo网络库
,顺便第二次详细的精读一下《unix网络编程》。在这里从最基础的编程模型开始,记录一下一步步改进程序的过程和细碎的知识点。首先看一下启动一个服务器程序所必须的库函数。
lijun538
·
2016-04-05 22:00
socket
unix
网络编程
Muduo网络库
源码分析(二) 定时器TimeQueue,Timer,TimerId
首先,我们先要明白为什么需要设计这样一个定时器类?在开发Linux网络程序时,通常需要维护多个定时器,如维护客户端心跳时间、检查多个数据包的超时重传等。如果采用Linux的SIGALARM信号实现,则会带来较大的系统开销,且不便于管理。Muduo的TimerQueue采用了最简单的实现(链表)来管理定时器,它的效率比不上常见的binaryheap的做法,如果程序中大量(10个以上)使用重复触发的定
NK_test
·
2016-04-04 19:00
多线程
linux
定时器
epoll
muduo
Muduo网络库
源码分析(一) EventLoop事件循环(Poller和Channel)
从这一篇博文起,我们开始剖析
Muduo网络库
的源码,主要结合《Linux多线程服务端编程》和网上的一些学习资料!(一)TCP网络编程的本质:三个半事件1.
NK_test
·
2016-04-04 00:00
多线程
源码
linux
网络编程
muduo
libsmart网络库吞吐量(throughput)对比测试
libsmart网络库吞吐量与
muduo网络库
对比测试【ping-pong测试】测试环境:CentOS6.7,四核,内存2G1.吞吐量(4个工作线程)2.CPU占用率(10000个并发连接占用的CPU)
jackhen
·
2016-02-16 21:00
吞吐量
2016年学习计划
项目一:自己一步步实现高可用底层网络框架,可移植性(windows/Linux)平台.项目周期:3-4个月1.Linux参考:陈硕的以及
muduo网络库
Step0熟悉boost智能指针、function
haolipengzhanshen
·
2016-02-02 10:00
网络
职业规划
boost
muduo
多线程编程模型
http://blog.csdn.net/kangroger/article/details/47048215在学习
muduo网络库
前,应该先熟悉一下多线程网络服务编程模型。
oMingZi12345678
·
2015-12-06 13:00
Muduo 多线程模型:一个 Sudoku 服务器演变
全系列文章列表: http://blog.csdn.net/Solstice/category/779646.aspx本文以一个SudokuSolver为例,回顾了并发网络服务程序的多种设计方案,并介绍了使用
muduo
oMingZi12345678
·
2015-12-05 22:00
muduo网络库
使用心得
上个月看了朋友推荐的mudo网络库,下完代码得知是国内同行的开源作品,甚是敬佩。下了mudo使用手冊和035版的代码看了下结构,感觉是一个比較成熟并且方便使用的网络库。本人手头也有自己的网络库,尽管不敢说是一个多强大的网络库,但毕竟在外网也稳定运营了几年,多组同一时候在线也跑过30w左右,单组server也能跑上w人。做游戏server几年的经验,感觉稳定性才是网游server最核心最重要的环节,
·
2015-11-13 00:12
网络
linux新增特性timerfd
我首次接触这个新特性是在
muduo网络库
的定时器里看到的,那么新增一个这样的定时器接口有什么意义呢?
Shreck66
·
2015-11-09 21:00
linux
网络
定时器
timerfd
muduo网络库
中buffer的设计
1.为什么非阻塞网络编程中应用层buffer是必须的非阻塞I/O(在这里可以理解为非阻塞I/O加T/O复用)的核心思想就是避免将当前线程阻塞在I/O系统调用上,这样可以使我们的I/O线程只阻塞在I/O复用函数上(epoll_wait或poll,select)使其能够服务更多的连接socket那么如何才能做到这一点呢?这里我们就需要实现应用层的输入输出buffer(1)什么情况下用到outputbu
Shreck66
·
2015-11-03 16:00
函数
socket
网络
buffer
网络编程
muduo网络库
学习之MutexLock类、MutexLockGuard类、Condition类、CountDownLatch类封装中的知识点
一、MutexLock 类 class MutexLock : boost::noncopyable 二、MutexLockGuard类 class MutexLockGuard : boost::noncopyable 三
·
2015-10-29 08:47
CountDownLatch
muduo网络库
源码学习————日志类封装
muduo库里面的日志使方法如下这里定义了一个宏#defineLOG_INFOif(muduo::Logger::logLevel()Impl=>LogStream=>operatorg_output=>g_flushmuduo库里面的日志类封装相关的文件为Logging.h,Logging.cc,LogSrtream.h,LogSrtream.cc,附带一个StringPiece.h文件,几个文
缱绻的西格玛
·
2015-08-30 17:31
网络
源码
库
muduo库源码学习
muduo网络库
源码学习————线程池实现
muduo库里面的线程池是固定线程池,即创建的线程池里面的线程个数是一定的,不是动态的。线程池里面一般要包含线程队列还有任务队列,外部程序将任务存放到线程池的任务队列中,线程池中的线程队列执行任务,也是一种生产者和消费者模型。muduo库中的线程池源码如下:线程池头文件ThreadPool.h//线程池//UseofthissourcecodeisgovernedbyaBSD-stylelicen
缱绻的西格玛
·
2015-08-29 18:13
muduo库源码学习
muduo网络库
源码学习————无界队列和有界队列
muduo库里实现了两个队列模板类:无界队列为BlockingQueue.h,有界队列为BoundedBlockingQueue.h,两个测试程序实现了生产者和消费者模型。(这里以无界队列为例,有界队列和无界的差不多)代码如下:BlockingQueue.h#include#include#include#include#includenamespacemuduo{template//队列模板cl
缱绻的西格玛
·
2015-08-29 17:20
muduo库源码学习
muduo网络库
源码学习————互斥锁
muduo源码的互斥锁源码位于muduo/base,Mutex.h,进行了两个类的封装,在实际的使用中更常使用MutexLockGuard类,因为该类可以在析构函数中自动解锁,避免了某些情况忘记解锁。代码如下所示://UseofthissourcecodeisgovernedbyaBSD-stylelicense//thatcanbefoundintheLicensefile.////Author
缱绻的西格玛
·
2015-08-29 11:47
muduo库源码学习
muduo网络库
源码学习————原子性操作Atomic.h
原子性操作可以做到比互斥锁更小的开销,在多线程编程中原子性操作是非常有用的。Atomic.h文件位于muduo/base下,代码如下://UseofthissourcecodeisgovernedbyaBSD-stylelicense//thatcanbefoundintheLicensefile.////Author:ShuoChen(chenshuoatchenshuodotcom)//原子性
缱绻的西格玛
·
2015-08-28 19:28
muduo库源码学习
废弃的会员开通系统
系统用了陈硕的
muduo网络库
,被我们这边同事改进,增加了UDP支持以适配公司的内部协议。整个系统有3个模块,接收用户付账信息模块、订单处理模块和用户会员信息存储模块。
OrangeHolic
·
2014-11-07 10:00
系统
大型网站架构演变过程、大并发服务器架构
大型网站架构演变过程、大并发服务器架构分类:
muduo网络库
2013-11-1412:39 2231人阅读 评论(7) 收藏 举报大型网站架构大并发服务器架构大型网站架构演变过程:[Step1]webserver
liema2000
·
2014-09-18 15:00
muduo网络库
muduo网络库
的一点小结
muduo网络库
的一点小结看了国人写的一个C++开源网络库,写点小结吧。
pizzx
·
2014-06-06 16:00
Muduo网络库
分析(三)
本篇主要讲多路复用IO接口以及对定时器的实现。在voidEventLoop::loop()中调用多路复用IO接口的代码是:pollReturnTime_ = poller_->poll(kPollTimeMs, &activeChannels_);多路复用IO接口被封装成类Pollerclass Poller : boost::noncopyable { public: typede
Fire_thief
·
2014-06-06 13:00
Muduo网络库
分析(二)
上一篇博文已经将网络库在处理连接的步骤分析了一下。本片主要分析在IOThread中的操作。IOThread要从server_.start()开始说起。还是把简化的代码再次贴出吧int main(int argc, char* argv[]) { LOG_INFO 1) { numThreads = atoi(argv[1])
Fire_thief
·
2014-05-29 11:00
Muduo网络库
分析(一)
开始还是先说些不说不行,说了又觉得减少键盘寿命的几句话:muduo是一个基于Reactor模式的现代C++网络库,它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。希望你你能对Reactor模式和非阻塞IO,事件驱动和回调这些概念有一定的认识。如果了解epoll那就更好。 学习一种开源库有多种方法,你可以先通过网上或者帮助文档的
Fire_thief
·
2014-05-22 17:00
常见多线程与并发服务器设计方案举例
常见多线程与并发服务器设计方案举例分类:
muduo网络库
2013-11-0421:25 930人阅读 评论(0) 收藏 举报并发服务器多线程reactorthreadpool一、3点基础知识1、一个主机的端口号为所有进程所共享
pi9nc
·
2014-04-09 09:00
muduo网络库
大型网站架构演变过程、大并发服务器架构
分类:
muduo网络库
2013-11-1412:39 1664人阅读 评论(2) 收藏 举报大型网站架构大并发服务器架构大型网站架构演变过程:[Step1]webserver与数据库分离web动静资源分离静态请求
pi9nc
·
2014-04-09 09:00
muduo网络库
阻塞/非阻塞读写总结、tcp网络编程的本质、muduo::Buffer设计简介
分类:
muduo网络库
2013-11-0716:42884人阅读评论(0)收藏举报muduoBuffer阻塞非阻塞读写tcp网络编程本质一、阻塞/非阻塞读写总结1、对于read调用,如果接收缓冲区中有20
pi9nc
·
2014-04-09 08:00
muduo网络库
《linux多线程服务端编程--
muduo网络库
的使用》读后感
很少这么认真的读完这么厚的一本书,很少有书能让自己读完以后再读。对于少有开发经验的人来说,书中的内容恰有醍醐灌顶的效果,书中的内容甚是新颖!从去年12月份买来,大概翻看了一遍,今天开学以后诸事安排妥当,就开始认真读这本书,包括附带的源码。源码并不是很多,但是从作者的介绍来看,竟然实现了那么强大的东西,很是好奇,也想通过这本书来看看C++在工程性质的代码中的大作用。也借此学习学习C++.收获确实不少
yusiguyuan
·
2014-04-01 22:00
网络编程
关于
muduo网络库
的注解
注:muduo用C++实现蛮有意思的,其大量使用boost的shared_ptr,bind,function实现对象生命期控制、事件回调机制,且基于对象编程而非面向对象编程。在此记点笔记吧,以备后查。文字部分:1Reactor模式的实现:关键是三个类:Channel,Poller,EventLoop。 classChannel:事件分发器,其记录了描述符fd的注册事件和就绪事件,
liuxuejiang158
·
2013-12-01 23:00
muduo网络库注解
muduo网络库
学习之muduo_inspect 库涉及到的类
muduoinspect库通过HTTP方式为服务器提供监控接口,现在只实现进程相关信息的监控,通过成员ProcessInspector实现。ProcessInspector//通过ProcessInfo返回进程信息 ProcessInfo//获取进程相关信息我们可以参照 ProcessInspector实现一个如TcpStateInspector,作为Inspector的成员,这样就可以实
Simba888888
·
2013-11-13 21:00
http
inspector
muduo
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:浏
Simba888888
·
2013-11-13 16:00
http
request
response
muduo
muduo网络库
学习之EventLoop(七):TcpClient、Connector
Connector主要用于发起连接,并带有自动重连的功能,成员主要有一个channel_, C++Code 1 boost::scoped_ptr channel_; // Connector所对应的Channel与Acceptor相比少了一个acceptSocket_ 成员,因为Connector是创建一个新的sockfd并connect它,如下:Connector::start()-->
Simba888888
·
2013-11-10 18:00
connector
TcpClient
muduo
muduo网络库
学习之EventLoop(六):TcpConnection::send()、shutdown()、handleRead()、handleWrite()
首先在EventLoop(五)基础上,在TcpConnection构造函数中添加: C++Code 123 // 通道可写事件到来的时候,回调TcpConnection::handleWritechannel_->setWriteCallback( boost::bind(&TcpConnection::handleWrite, this));多了两个应用层缓冲区成员: C++Code 12
Simba888888
·
2013-11-10 13:00
shutdown
muduo
handleRead
handleWrite
muduo网络库
学习之EventLoop(五):TcpConnection生存期管理(连接关闭)
监听套接字可读事件是POLLIN;已连接套接字正常可读是POLLIN;正常可写是POLLOUT;对等方close/shutdown关闭连接,已连接套接字可读是POLLIN|POLLHUP;时序图分析:注意:将TcpConnectionPtr在connections_中erase掉,时并不会马上析构TcpConnection对象(引用计数不为0),因为此时正处于Channel::handleEven
Simba888888
·
2013-11-09 16:00
muduo
tcpConnection
muduo网络库
学习之EventLoop(四):EventLoopThread 类、EventLoopThreadPool 类
1、EventLoopThread(IO线程类)任何一个线程,只要创建并运行了EventLoop,都称之为IO线程IO线程不一定是主线程muduo并发模型oneloopperthread+threadpool(计算线程池)为了方便今后使用,定义了EventLoopThread类,该类封装了IO线程EventLoopThread创建了一个线程在线程函数中创建了一个EvenLoop对象并调用Event
Simba888888
·
2013-11-09 09:00
muduo
EventLoopThread
muduo网络库
学习之EventLoop(三):Socket、Acceptor、TcpServer、TcpConnection(连接建立,接收消息)
1、Socket操作封装Endian.h封装了字节序转换函数(全局函数,位于muduo::net::sockets名称空间中)。SocketsOps.h/SocketsOps.cc封装了socket相关系统调用(全局函数,位于muduo::net::sockets名称空间中)。Socket.h/Socket.cc(Socket类)用RAII方法封装socketfiledescriptorInetA
Simba888888
·
2013-11-08 17:00
socket
tcpserver
muduo
tcpConnection
上一页
1
2
3
4
5
6
7
下一页
按字母分类:
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
其他