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源码分析
:Reactor模式的封装实现
关于muduo实现的Reactor模式,有三个关键的类:1.事件分发器类Channel2.封装I/O复用的Poller(主要研究EpollPoller)3.定时器接口类TimerQueue事件循环EventLoop类实现了Reactor的基本模式。1.事件分发类Channel事件分发器Channel的数据成员如下://定义事件类型变量staticconstintkNoneEvent;//无事件st
amoscykl
·
2023-10-20 18:30
moduo网络库
muduo源码分析
Reactor
muduo网络库
muduo源码分析
之TcpServer模块
这次我们开始muduo源代码的实际编写,首先我们知道muduo是LT模式,Reactor模式,下图为Reactor模式的流程图[来源1]image-20220220154310731然后我们来看下muduo的整体架构[来源1]muduo首先muduo有一个主反应堆mainReactor以及几个子反应堆subReactor,其中子反应堆的个数由用户使用setThreadNum函数设置,mainRea
shicoder
·
2023-09-01 22:22
muduo源码分析
之Buffer
这一次我们来分析下muduo中Buffer的作用,我们知道,当我们客户端向服务器发送数据时候,服务器就会读取我们发送的数据,然后进行一系列处理,然后再发送到其他地方,在这里我们想象一下最简单的EchoServer服务器,客户端建立一个连接,以后服务器和客户端之间的通信都是通过这个connfd发送和接受数据,于是每一个connfd都应该有一个自己buffer,当我们发送数据太快,服务器发送的太慢,则
shicoder
·
2023-06-14 07:15
muduo源码 ---ThreadPool介绍
muduo源码分析
系列线程池的实现分析线程池之前,先介绍线程毕竟线程池里保存着每个线程先分析Thread类classThread:noncopyable{public:typedefstd::functionThreadFunc
夏_a495
·
2023-04-17 22:58
muduo源码分析
之回调模块
这次我们主要来说说muduo库中大量使用的回调机制。muduo主要使用的是利用Callback的方式来实现回调,首先我们在自己的EchoServer构造函数中有这样几行代码EchoServer(EventLoop*loop,constInetAddress&addr,conststd::string&name):server_(loop,addr,name),loop_(loop){//注册回调函
shicoder
·
2023-04-08 10:14
muduo源码分析
之TcpServer模块详细介绍
这次我们开始muduo源代码的实际编写,首先我们知道muduo是LT模式,Reactor模式,下图为Reactor模式的流程图[来源1]然后我们来看下muduo的整体架构[来源1]首先muduo有一个主反应堆mainReactor以及几个子反应堆subReactor,其中子反应堆的个数由用户使用setThreadNum函数设置,mainReactor中主要有一个Acceptor,当用户建立新的连接
·
2022-04-25 16:49
muduo源码分析
之TcpServer模块
这次我们开始muduo源代码的实际编写,首先我们知道muduo是LT模式,Reactor模式,下图为Reactor模式的流程图[来源1]然后我们来看下muduo的整体架构[来源1]首先muduo有一个主反应堆mainReactor以及几个子反应堆subReactor,其中子反应堆的个数由用户使用setThreadNum函数设置,mainReactor中主要有一个Acceptor,当用户建立新的连接
·
2022-04-24 21:24
golang
muduo源码分析
之回调模块
这次我们主要来说说muduo库中大量使用的回调机制。muduo主要使用的是利用Callback的方式来实现回调,首先我们在自己的EchoServer构造函数中有这样几行代码EchoServer(EventLoop*loop,constInetAddress&addr,conststd::string&name):server_(loop,addr,name),loop_(loop){//注册回调函
·
2022-04-24 21:54
golang
muduo源码分析
之Buffer
这一次我们来分析下muduo中Buffer的作用,我们知道,当我们客户端向服务器发送数据时候,服务器就会读取我们发送的数据,然后进行一系列处理,然后再发送到其他地方,在这里我们想象一下最简单的EchoServer服务器,客户端建立一个连接,以后服务器和客户端之间的通信都是通过这个connfd发送和接受数据,于是每一个connfd都应该有一个自己buffer,当我们发送数据太快,服务器发送的太慢,则
·
2022-04-22 15:46
golang
muduo源码分析
之muduo简单运用
今天不先实现muduo项目,我们先来看下muduo库的基本使用,只有了解了如何用,才能在写代码的时候知道自己写的找个函数是干嘛的,实际上是怎么使用的这个函数。首先说简单点,就是定义一个Server,设置两个回调函数//回调连接相关的事件voidonConnection(constTcpConnectionPtr&conn);//回调读写事件voidonMessage(constTcpConnect
·
2022-04-22 15:13
golang
muduo源码分析
:Thread类
代码文件目录为:muduo/baseThreadNameInitializerThreadNameInitializer进行主线程初始化操作(利用全局变量):包括设置默认的线程name、缓存线程id。如果进行了fork,那么在子进程中运行afterFork函数进行同样的初始化工作。voidafterFork(){muduo::CurrentThread::t_cachedTid=0;muduo::
amoscykl
·
2020-09-16 20:06
moduo网络库
muduo源码分析
muduo源码分析
之多线程TcpServer
(一)EventLoopThread类在
muduo源码分析
之EventLoop::runInLoop()函数因为要测试跨线程runInLoop()调用,因此,引入了EventLoopThread类,这里回顾以下
NearXDU
·
2020-08-16 17:32
muduo和多线程学习
C++多线程
muduo源码分析
之定时器TimerQueue的设计与实现
1.简介这部分介绍TimerId、Timer、TimerQueue三个class的封装,反映到实际使用,主要是EventLoop中的三个函数:runAt()、runAfter()、runEvery()。TimerQueue的封装是为了让未到期的时间Timer有序的排列起来,这样,能够更具当前时间找到已经到期的Timer也能高效的添加和删除Timer。所谓的到期与未到期,与当前在当前时间之前表示已经
NearXDU
·
2020-08-16 17:32
muduo和多线程学习
C++多线程
muduo源码分析
之TcpConnection发送数据
(一)writeable事件的busyloop发送数据是要比接收数据更加麻烦的事情,因为它是一个主动发生的事情,考虑下面情况:水平触发模式(Level-Triggered);当socket可写时,会不停的触发socket可写的事件,如何处理?也就是说,如果发送缓冲不满,将不停触发socket可写事件,也就是说,poll/epoll调用不停返回,也就进入busyloop了。怎么解决这个问题,以前有一
NearXDU
·
2020-08-14 22:05
muduo和多线程学习
C++多线程
muduo源码分析
之EventLoop::runInLoop()函数
前面所学的一些内容,从最早的什么都不做的EventLoop开始,到后面的定时器,功能不断在丰富,不过一直都是单线程下的。也就是说EventLoop对象在主线程中进行事件循环。今天花了一天时间所学习的EventLoop::runInLoop()就打开muduo多线程编程的大门。1.eventfd唤醒线程先来看看这个eventfd的用法,直接上示例:#include#include#include#i
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源码分析
--我对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源码分析
muduo源码分析
--事件如何被关注的 EpollPoller Channel TcpServer
首先看TcpServer:在这里肯定是有socketfd的,不然这个监听套接字是怎么被关注的呢!这样的操作时通过Accept来处理的Acceptor:在这个类就是提供给TcpServer让其监听的,类中有Channel,也有一个Socket,有一个事件handleRead(),这个函数肯定是提供给Channel的,等到Acceptor中的socketfd有事件时,肯定是可读事件,调用Channel
鱼思故渊
·
2020-08-14 22:34
muduo源码分析
muduo源码分析
muduo源码分析
EventLoopThreadPool 类
文章目录构造与析构start开启线程池getNextLoop采用轮询的方式分配EventLoopgetLoopForHash采用hash方式分配EventLoopgetAllLoops返回所有的EventLoopEventLoopThreadPool是一个线程池,只不过该线程池有一点特殊,该线程池中的每一个线程都要执行EventLoop进行文件描述符的监听。此时一个线程用于管理分配线程池中的Eve
冯巩2.0
·
2020-08-14 19:26
muduo源码分析
muduo源码分析
Channel类
文章目录头文件构造与析构update与removehandleEvent事件分发Channel是单个文件描述符进行事件分发的类https://blog.csdn.net/qq_43390943/article/details/89873302中介绍了Channel在新连接到达时的作用。这里在源码中看一些Channel处理了哪些东西。头文件//事件分发器,每个事件分发器对应一个文件描述符,监听该文件
冯巩2.0
·
2020-08-14 19:26
muduo源码分析
muduo源码分析
:日志相关类(1)
1.stringPiece类:当字符串来用统一char*字符串和std::string。通过char*字符串或者string作参数传递字符串,形参为stringPiece类型,就不会有内存拷贝stringPiece只有两个变量constchar*ptr_;//字符串首地址intlength_;//字符串长度其实形参为constchar*也可以做到不拷贝内存,只是sting类型的实参传递时,要用st
le119126
·
2020-08-14 17:11
muduo
c++
linux
【
Muduo源码分析
】
Muduo源码分析
系列总览
本系列主要是分析Muduo网络库的执行流程,让大家有一个大致的认识。网络库主要是完成对三个半事件的关注。本系列的具体信息如下:连接的建立处理:https://mp.csdn.net/postedit/99467217连接的断开处理:https://blog.csdn.net/hello_ape/article/details/99482349数据的接收:https://blog.csdn.net/
hello_ape
·
2020-08-14 17:53
Muduo
【
Muduo源码分析
】muduo的EventLoop 解读
Muduo奉行的是每个oneloopperthread,意思是每个线程只有一个EventLoop对象。在Muduo中,称创建了EventLoop对象的线程是IO线程。我主要关注大体框架,有些细节暂时不关注。首先看看构造函数(下列源码源自Muduo的教程示例)EventLoop::EventLoop():looping_(false),quit_(false),callingPendingFunct
hello_ape
·
2020-08-14 17:53
Muduo
Muduo
Linux网络编程
muduo源码分析
:TcpServer类
上篇博文学习了Acceptorclass的实现,它仅仅是对Channel和Socket的简单封装,对使用者来说简单易用。这得益于底层架构Reactor。接下来,开始学习muduo对于建立连接的处理。这属于muduo提到的三个半事件中的第一个。可以想一下,TcpServerclass应该也是对Acceptor,Poller的封装。连接处理过程首先TcpServer通过Acceptor向Poller注
amoscykl
·
2020-08-14 16:59
moduo网络库
muduo源码分析
muduo源码分析
:EventLoop类 (核心)
4.EventLoop类的实现EventLoop类实现了reactor的基本模式,它的数据定义如下:voidabortNotInLoopThread();//不在主I/O线程voidhandleRead();//wakedup//将事件通知描述符里的内容读走,以便让其继续检测事件通知voiddoPendingFunctors();//执行转交给I/O的任务voidprintActiveChanne
amoscykl
·
2020-08-14 16:27
moduo网络库
muduo源码分析
muduo源码分析
——EventLoop
先简单说一下,因为我参考的是flamingo的代码,会和muduo有一点点出入,但是基本是差不多,因为前者是基于后者开发的,可能有一点点改动。EventLoop是muduo里比较核心的类吧,因为它是实现Reactor模式的核心,什么是Reactor模式,其实很多文章和书籍都有讲,我也打算抽空写一篇博客,来总结下自己的心得,至少现在没有总结,哈哈~~。其实如果认真读一下EventLoop里的Loop
不安的前方
·
2020-08-14 15:21
c++网络编程
muduo源码分析
——Channel
本文简单分析muduo的Channel类,我在学习muduo的时候,因为一开始看的很晕,后来找了很多文章来学习,这个Channel有很多种叫法“事件分发器”,“I/O选择器”等,但我还是喜欢叫它通道,为什么呢,因为,当I/O事件发生的时候,最终会回调到Channel的回调函数中,所以我更喜欢把它当作通道,当然这也是它的中文翻译。每一个Channel都对应唯一的EventLoop,也就是一个I/O线
不安的前方
·
2020-08-14 15:49
c++网络编程
muduo源码分析
——TcpConnection
muduo中的TcpConnection算是整个框架中的大头吧,因为每个客户端连接对应一个Channel和一个TcpConnection,而之前已经说了,Channel只是一个通道,那么对于客户端连接的各种处理,基本都是在TcpConnection上完成的了。这个类的cpp文件算是muduo里比较长的了,有400+行。注意我参考的代码时flamingo的代码,是基于muduo,或者会有些出入。Tc
不安的前方
·
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也放到这里一起聊的,但是那个太多啦,一篇文章太长会让人读的很不舒服把。当然我用的代码是其他大神开发的flamingo的源码,这是一个基于muduo开发的即时聊天服务器具体的地址https://blog.csdn.net/analogous_love/article/details/694815
不安的前方
·
2020-08-14 15:49
c++网络编程
muduo源码分析
——整体架构
最近在学习网络编程,从flamingo这个服务器开始,当然这个服务器也是基于muduo开发的,所以也算是在研究muduo吧。以前也有记录的习惯,在ipages上或者写在本子上,不过还是记录在博客上吧,一来可以分享自己的心得,二来备查也方便,再者有任何的理解偏差,也会有网友指正吧。 之前也看过不少muduo的分析,这次决定按照自己的理解来写博客,或许会有偏差,希望大家能帮我指出来,谢谢! 先从整体
不安的前方
·
2020-08-14 15:14
c++网络编程
muduo
网络编程
muduo源码分析
--详解muduo多线程模型
6.3非阻塞网络编程应该用边沿触发(ET)还是电平触发(LT)?如果是电平触发,那么什么时候关注POLLOUT事件?会不会造成busy-loop?如果是边沿触发,如果和防止漏读造成的饥饿?epoll一定比poll快么?6.4在finger的测试程序中,没有设置onConnection这个函数,就可以连接?6.6详解muduo多线程模型方案0:accept+read/write一次服务一个客户这个不
鱼思故渊
·
2020-08-11 01:05
muduo源码分析
muduo源码分析
muduo源码分析
之Buffer设计
好久没有看muduo了,最近看Nginx看的有点醉,换换口味。(一)阻塞与非阻塞I/O总结1、对于read调用,如果接收缓冲区中有20字节,请求读100个字节,就会返回20;对于write调用,如果请求写100个字节,而发送缓冲区中只有20个字节的空闲位置,那么write会阻塞,直到把100个字节全部交给发送缓冲区才返回。对于非阻塞I/O来说,以write为例,假设要保证将应用程序的100个字节全
NearXDU
·
2020-08-03 09:28
muduo和多线程学习
C++多线程
muduo源码分析
(一)
muduo是个基于现代C++高效的高并发网络库,他依赖boost库,由陈硕大神编写,更多详情介绍,请看点击打开链接muduo代码结构比较清晰易懂,各个细节处理的非常完美,是一个非常值得学习的开源库。基于他是个网络库,开篇我剖析他的网络相关部分的结果,各个类的继承,调用关系。网络服务器要处理的对象无外乎,监听者TcpServer,连接接收者Acceptor,连接者TcpConnection等等主体对
Shonm
·
2020-07-30 07:56
linux网络编程
muduo
muduo
源码分析
muduo源码分析
--数据发送
暂且已经明白在non-blocking+IOmultiplexing网络编程模型中应用层的buffer是必须的这个问题,看数据是怎么被发送的:对于应用程序而言,它只管生成数据,它不应该去关心到底数据是一次性发送还是分成几次发送,这些应该由网络库操心,程序只要调用TcpConnection::send()就行了,网络库会负责到底。网络库应该接管这剩余的20KB数据,把它保存在该TCPconnecti
鱼思故渊
·
2020-07-06 11:06
muduo源码分析
muduo源码分析
【
muduo源码分析
】Buffer类的设计
目录1、muduo的IO模型2、为什么non-blocking网络编程中应用层buffer是必须的?2.1TcpConnection必须要有outputbuffer2.2TcpConnection必须要有inputbuffer3、MuduoBuffer的数据结构3.1muduobuffer类设计3.2核心函数分析4、参考1、muduo的IO模型Unix/Linux上常见的五种IO模型:阻塞(blo
good-destiny
·
2020-07-05 15:51
开源源码分析
muduo源码分析
:reactor模型封装
图中FileDescriptor、socket都不是类EventLoop:loop--》poller::loop--》pollPoller::loop或者epollpoller::poll,循环等待io事件发生,发生后Eventloop得到activeChannels_活动通道(保存了发生的事件与回调处理函数),并调用该事件的回调处理函数(活动通道channel中注册的回调处理函数,Eventlo
le119126
·
2020-07-04 21:36
muduo
c++
muduo源码分析
--EventLoop 类的实现
首先看EventLoop的具体实现,因为继承了boost::noncopyable。所以这个类是不可拷贝的。从设计muduo的理念来看,oneloopperthread顾名思义每个线程只能有一个EventLoop对象,因此EventLoop的构造函数就会检查当前线程是否已经创建了其他EventLoop对象,遇到错误就终止程序(LOG_FATAL).EventLoop的构造函数会记住本对象所属的线程
鱼思故渊
·
2020-06-30 10:03
muduo源码分析
muduo源码分析
muduo源码分析
--EventLoopThreadPool类
这个貌似是个池,池里全是EventLoopThread。貌似很强大这个类对外的接口也很简单一个构造函数,需要传递的是EventLoop一个设置个数的函数setThreadNum,这个函数好像决定了开启几个EventLoopThread一个start从感觉上来看这个函数是按照numThreads_的数目来开启线程的,EventLoopThreadPool中有一个向量存放着E3ventLoopThre
鱼思故渊
·
2020-06-30 10:03
muduo源码分析
muduo源码分析
Muduo源码分析
一: Poller类 + EpollPoller类详解
前言最近开始看陈硕大佬的muduo,在这里记下所学到的知识叭.第一次写关于阅读源代码的博客,可能更多的是通过注释的方式来解释作者的思路,如果有任何的疑问或意见,欢迎评论.正文Poller介绍eventloop类中有一个成员叫做poller_,这个poller_负责着所有的IO事件,在整个eventloop中起到了决定性的作用.std::unique_ptrpoller_;//eventloop.h
ciaiy
·
2019-06-02 19:01
Muduo源码
muduo源码分析
:Channel类 (事件分发器)
事件分发类Channel事件分发器Channel的数据成员如下://定义事件类型变量staticconstintkNoneEvent;//无事件staticconstintkReadEvent;//可读事件staticconstintkWriteEvent;//可写事件EventLoop*loop_;//channel所属的loopconstintfd_;//channel负责的文件描述符inte
amoscykl
·
2018-10-31 01:30
moduo网络库
muduo源码分析
muduo源码分析
之Acceptor
ClassAcceptor:用于accept一个TCP连接,并通过回调函数通知使用者。accept接受成功后通知TCP连接的使用者,Acceptor主要是供TcpServer使用的,其生命期由后者控制,一个Acceptor相当于持有服务端的一个socket描述符,该socket可以accept多个Tcp客户端连接。Acceptor在构造时候会创建一个socket描述符--acceptSocket_
Cassie_Yan
·
2017-07-22 20:47
muduo源码分析
muduo源码分析
之EventLoop
Eventloop事件循环:反应器(reactor):负责IO和定时器事件的分派。Reator总结性:(Eventloop,Poller,Channel,Timer)一个事件循环对应一个IO线程,IO线程执行EventLoop事件主循环,该主循环loop调用IO复用器poller监听事件集合,并将就绪事件通过事件分发器Channel执行相应的事件回调。1.ClassChannel:事件分发器,主要
Cassie_Yan
·
2017-07-21 16:53
muduo源码分析
muduo源码分析
--线程池的实现
muduo线程池主要有3个类的实现:EventLoop,EventLoopThreadPool,EventLoopThread,和Thread.1.Thread为对一个线程的封装:classThread:boost::noncopyable{public:typedefboost::functionThreadFunc;//创建线程时,传递的函数explicitThread(constThread
扎扎实实写代码
·
2017-04-25 10:43
muduo源码分析
muduo源码分析
之事件处理器-Channel
前面两篇对Acceptor和TcpConnection的分析中,我们知道他们最终都是通过Channel和Eventpool简历连接,而且真正的事件处理函数也都是封装在Channel类中的。所以这里我把Channel看成事件处理器。 除了事件处理函数之外,Channel也是必须将可能产生事件的文件描述符封装在其中的。这里的文件描述符可以是filedescriptor,可以是socket,还可以
gswen
·
2017-02-24 11:54
服务器端编程
muduo源码分析
muduo源码分析
--连接的断开
在Tcp中断开连接比创建连接更加困难 真正执行断开连接的时候是从在channel中的handleEvent函数,在Channel中并没有handleRead、handleWrite、handleClose函数出里的实现,都是借助注册的回调来进行的。 在某一个channel上有事件到达时,执行相应的操作,更具事件类型执行相应的操作这个步骤是在handleEvent函数中进行的。在chan
yusiguyuan
·
2014-03-31 17:00
C++
网络编程
上一页
1
2
下一页
按字母分类:
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
其他