目录

Server类,管理整个服务器,创建两个TcpServer,一个内部一个外部,接收新连接,接收数据


run(InetAddress& ext_ipport,InetAddress& int_port,int threadNum)

启动函数

1.创建内部TcpServer int_server,同时绑定onConnection、onMessage
2.创建外部TcpServer ext_server,同时绑定onConnection、onMessage
3.构建终端处理器(运行时接收外部命令)

onConnection(const TcpConnectionPtr& conn,conntype t)

新连接处理

1.总的连接数加1
2.创建上下文context对象 conn_ctx(外部连接)或session_ctx(内部连接)
3.把全部context对象放到base_ctxs_,外部连接单独放到server_conns_
4.context初始化

onMessage(const TcpConnectionPtr& conn, Buffer* buf)

接收数据

1.conn找到对应的context
2.送入数据

Create(conntype conn_type,const char* ip ,uint16_t port)

创建新连接对应context

1.根据连接类型创建conn_ctx或session_ctx
2.连接初始化分配cid

newConnID()

获取新的连接ID号

1.从map中找到最新ID

Find(uint32_t connid)

根据connid获取对应的context

insert(const EntryPtr& entry)

把新的连接放入到系统容器中

1.所有连接放入base_ctxs_
2.内部连接放入server_conns_

remove()

把已关闭连接从系统容器中移除

OnTimerTick()

30s一次遍历,将已失效连接关闭