用户工具

站点工具


server:game:net:base_ctx

基础Context对象,是对TcpConnection的封装


属性

WeakTcpConnectionPtr weakConn_;		
packet_parser *parser_;
uint32_t 	cid_;			//连接ID	
int 		type_;			//连接类型conntype 	
EncipherMode has_encipher_;	//是否需要加解密	
char 		remote_ip_[32];	//远程IP及端口
uint16_t 	remote_port_;    
uint32_t 	last_pkt_tm_;	//收到该连接最后一个包的时间表	
uint32_t 	connect_tm_; 	//连接建立时间
Server*		mgr_;			//当前连接的管理器,用于根据connid查找相应的连接
encipher 	encipher_;		//用于加解密,正常只有客户端连接才会使用
MutexLock 	mutex_encipher_;//因为仅仅发包可能影响到,所以加密的时候加锁就可以了,外部连接也会影响到
uint32_t  	debug_deleted_; //内存调试机制,删除的时候被置为非0

方法

base_ctx()

构造方法

1.初始化数据包解析器parser_

~base_ctx()

析构方法

1.关闭TCP连接
2.释放数据解析器

init(Server* p,const WeakTcpConnectionPtr& weakConn)

初始化方法

  • p 服务器对象
  • weakConn TCP连接对象
赋值成员变量mgr_、weakConn_

onMessage(Buffer* buf)

当TCPconnect发送给server消息,server会调用此方法

使用解析器解析buf,把buf构造成packet对象,并调用onPacket方法

SendPacket(packet *pkt)

给TcpConnect发送pkt包

1.获取TcpConnectionPtr对象
2.调用send方法,把pkt内对应的二进制发送出去

onPacket(packet* pkt)

virtual 需要子类重写

onClosed()

virtual 需要子类重写

Close()

关闭连接

调用TcpConnectionPtr的shutdown关闭连接
server/game/net/base_ctx.txt · 最后更改: 2018/07/24 18:34 (外部编辑)