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

二.主要接口:

相关推荐
我爱娃哈哈14 分钟前
熔断器+重试机制,微服务容错的终极武器?一线设计实战全解析!
后端
菜菜的后端私房菜17 分钟前
Dubbo2到Dubbo3服务发现机制的优化
java·后端·dubbo
小行星2号26 分钟前
代码优化-SQL优化例子
后端
iLoyalty26 分钟前
防御保护3-4
网络
SimonKing37 分钟前
PostMan不香了,IDEA因为Apipost插件这一功能轻松取代
java·后端·程序员
oioihoii39 分钟前
CRT调试堆检测:从原理到实战的资源泄漏排查指南
开发语言·前端·c++·c
萑澈40 分钟前
国产开源大模型崛起:使用Kimi K2/Qwen2/GLM-4.5搭建编程助手
c++·开源·mfc
gnawkhhkwang40 分钟前
Flask + YARA-Python*实现文件扫描功能
后端·python·flask
渡我白衣1 小时前
Linux网络编程:TCP初体验
linux·网络·tcp/ip
卑微的小鬼1 小时前
TCP如何实现可靠传输?实现细节?
网络·tcp/ip·php