muduo库源码分析: TcpConnection

一. 主要成员:

  • socket_:用于保存已连接套接字文件描述符。
  • channel_:封装了上面的socket_及其各类事件的处理函数(读、写、错误、关闭等事件处理函数)。这个Channel中保存的各类事件的处理函数是在TcpConnection对象构造函数中注册的
  • loop_:这是一个EventLoop*类型,该Tcp连接的Channel注册到了哪一个sub EventLoop上。这个loop_就是那一个sub EventLoop。
  • inputBuffer_:这是一个Buffer类,是该TCP连接对应的用户接收缓冲区。
  • outputBuffer_:也是一个Buffer类,不过是用于暂存那些暂时发送不出去的待发送数据。因为Tcp发送缓冲区是有大小限制的,假如达到了高水位线,就没办法把发送的数据通过send()直接拷贝到Tcp发送缓冲区,而是暂存在这个outputBuffer_中,等TCP发送缓冲区有空间了,触发可写事件了,再把outputBuffer_中的数据拷贝到Tcp发送缓冲区中。
  • state_:这个成员变量标识了当前TCP连接的状态(Connected、Connecting、Disconnecting、Disconnected)
  • connetionCallback_、messageCallback_、writeCompleteCallback_、closeCallback_ :用户会自定义 [连接建立/关闭 的处理函数] 、[收到消息 的处理函数]、[消息发送完 的处理函数]以及Muduo库中定义的[连接关闭的处理函数]。这四个函数都会分别注册给这四个成员变量保存。

二.主要接口:

相关推荐
切糕师学AI几秒前
Spring 是什么?
java·后端·spring
老神在在0013 分钟前
Mybatis01
后端·学习·spring·java-ee·mybatis
c***72744 分钟前
SpringBoot + vue 管理系统
vue.js·spring boot·后端
s***35309 分钟前
SpringBoot集成Prometheus
spring boot·后端·prometheus
豆豆plus10 分钟前
C++实现文件操作类
开发语言·c++
M***299118 分钟前
【Spring Boot】SpringBoot自动装配-Import
java·spring boot·后端
墨雪不会编程19 分钟前
C++基础语法篇五 ——类和对象
java·前端·c++
C***u17619 分钟前
Spring Boot 3.x 系列【3】Spring Initializr快速创建Spring Boot项目
spring boot·后端·spring
f***R821 分钟前
go测试问题记录
开发语言·后端·golang
这个人需要休息25 分钟前
xss的漏洞类型+dvwa DOM xss各难度的小总结
网络·安全