trinitycore MySQL模块_TrinityCore MMORPG服务器设计分析

本文是通过TrinityCore研究从而对MMORPG服务器设计分析。

网络字节序

ByteBuffer是字节(unsigned char类型)处理,没有大小端处理。在网络通信应用程序上,这种是经常有的,网络是通过字节发送。

消息包格式:包头+包类型+包体

包头rc4加密

登录认证是(srp6)安全远程密码第六版协议,包类型是占一字节。

游戏中,包类型占1.5字节。

1、封包

重载&operator<<

按顺序把数据封包

2、解包

重载&operator>>

按顺序把数据解出

消息包处理

网络是采用boost asio

1、发送

这里需要注意,在这个执行,在多线程里面操作加锁

std::unique_lock<:mutex> guard(_writeLock);

boost::asio的发送函数:_socket.async_write_some

1.1 登录认证的发送

void AuthSession::SendPacket(ByteBuffer& packet)

{

if (!IsOpen())

return;

if (!packet.empty())

{

MessageBuffer buffer;

buffer.Write(packet.contents(), packet.size());

std::unique_lock<:mutex> guard(_writeLoc

你可能感兴趣的:(trinitycore,MySQL模块)