zhngs

zhngs

muduo源码分析(5)——服务端

一.简介
二.Acceptor
三.TcpServer
四.TcpConnection

一.简介

muduo为服务端程序编写提供了若干工具类

  • muduo/net/Acceptor负责监听socket套接字,接收新连接

  • muduo/net/TcpServer组合Acceptor,管理TcpConnection

  • muduo/net/TcpConnection内部包含socket套接字,负责与对端通信

二.Acceptor

Acceptor主要目的是接受客户端连接,并将得到的socket套接字传入到回调函数中

Acceptor包含一个Socket和Channel,当启动的时候会向EventLoop注册读事件,当有新连接到来时,会触发IO事件

三.TcpServer

TcpServer内部组合Acceptor,会将自身的创建连接的函数注册到Acceptor中,当有新连接到来,会拿到新连接的sockfd,随后创建TcpConnection

TcpServer内部有一个map用来管理TcpConnection

TcpServer是暴露给用户的,用户需要设置如下两个回调,连接的回调在连接建立和连接关闭的时候会被触发,消息的回调会在收到消息时触发,这两个回调会被注册到TcpConnection中

ConnectionCallback connectionCallback_; MessageCallback messageCallback_;

四.TcpConnection

TcpConnection包含一个sockfd和对应的Channel,用来向EventLoop注册事件