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库中定义的连接关闭**后**的处理函数。这四个函数都会分别注册给这四个成员变量保存。

二.主要接口:

相关推荐
sugar__salt几秒前
从跨域到 WebSocket:一篇讲透浏览器的通信边界
网络·websocket·网络协议
2601_9667990414 分钟前
酷嗨米J300:硬件级多通道分发采集设备,为矩阵直播打造独立信号通道
服务器·网络·负载均衡
2601_9672127215 分钟前
新一代电源轨道系统技术甄别维度与行业技术路线分析
大数据·网络·人工智能
艾芯微科技22 分钟前
SKY13370‑374LF|0.5‑6GHz SPDT 射频开关,WLAN/LTE 射频前端实用器件
网络·单片机·嵌入式硬件·集成测试·51单片机
见叶之秋43 分钟前
【C++】String类的使用(含模拟实现)
java·开发语言·c++
CC城子1 小时前
lwIP 2.2.1源码结构与移植
网络·lwip
Titan20241 小时前
网络基础:传输层协议知识梳理
linux·服务器·网络
阿拉斯攀登1 小时前
MQ消息积压问题排查:消费卡顿、堆积、消费速度优化
后端
wuminyu1 小时前
Linux内核线程调度与虚拟线程调度机制系统级深度剖析
java·linux·c语言·jvm·c++
阿拉斯攀登1 小时前
无人售货机库存异步更新方案:解决高并发下单库存卡顿问题
后端