自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 muduo源码剖析-接受数据和发送数据

1 接受数据 客户端与服务器建立连接,就有了一个TcpConnection对象,该TcpConnection对象包含客户端套接字文件描述符,对应的channel,以及所属的EventLoop对象。上述三个TcpConnection对象非常重要的数据成员,他们标识了这个TcpConnection对象的身份。TcpConnection对象还拥有inputBuffer_和outputBuffer_两个重要数据成员,用于接受数据和发送数据。 当事件循环收到可读事件的到来时,会调用fd对应的channel的读事件的回

2020-07-30 10:45:27 380

原创 muduo源码剖析-TcpServer连接关闭

Server关闭连接的情况有两种,一种是被动关闭,即对方先关闭连接,本地read(2)返回零,触发关闭逻辑。另一种是主动断开连接,即调用TcpConnection::forceClose()函数。 1 被动关闭 时序图如下 对方关闭时,read(2)会收到0字节,因此触发关闭逻辑。首先loop事件循环中channel触发handleEvent,然后调用readCallback_(),readCallback_在TcpConnection的构造函数中已绑定在TTcpConnection::handleRea

2020-07-29 17:04:30 503 1

原创 muduo源码剖析-TcpServer接受新连接

muduo源码剖析-TcpServer接受新连接 首先启动Tcpserver.start()以及loop->loop() Tcpserver.start(); loop->loop(); 看一下Tcpserver.start()的逻辑 void TcpServer::start() //启动线程池并且注册监听事件` { if (started_.getAndSet(1) == 0) { threadPool_->start(threadInitCallback_);//启

2020-07-29 10:19:43 151

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除