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

本文详细分析了TrinityCore MMORPG服务器设计,重点探讨了网络字节序、消息包格式和处理、封包与解包机制,以及使用MySQL模块。服务器采用boost asio进行网络通信,使用SRP6协议进行登录认证,并通过TCP进行数据传输。在游戏过程中,服务器处理会话和消息通过函数指针映射,确保游戏稳定运行。对于实时性强的游戏,作者建议考虑使用UDP协议。
摘要由CSDN通过智能技术生成

本文是通过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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值