GameHarbor统一账户机制建设完成

作者分享了自制控制台小游戏的过程,重点介绍了如何利用TCP协议及自定义数据包装类MapBox实现游戏的联网功能,并进一步开发了一套跨游戏的统一登录系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这一段时间一直没写题,也没怎么写博客。因为一直在做一个小游戏。

其实这是一个非常简单的控制台小游戏,主要逻辑都在本地,但是与以往的那些程序不一样的是,这次加入了联网功能——排行榜。

首先确认了通讯协议为保证可靠的TCP

但是TCP是没有边界的流式传输,然而我们使用带边界的数据包结构。于是写了一个叫做MapBox的数据包装类,内部基础是STL的map,使用string-string键值对。

由于基础设施sock类含有泛化接口sock::send(T&)和sock::recv(T&),因此MapBox只需要实现这个接口的适配版本即可. 使用toString()接口转化MapBox为string对象,使用Len+Value通过基础类发送,接收部分使用Len+Value通过基础类接收,根据分隔符重新制作成MapBox

这个MapBox目前已经十分稳定,但是还有几个缺点:

1. 通过截取数据包发现发送的数据是明文,不利于敏感数据的传输

2. 内部使用了Base64算法进行编码,这导致MapBox不能存储大于200MB的内容.


搞定MapBox后,游戏的联网部分就没有什么难度了。

在制作完成之时,我突然想到,如果每个游戏都需要一个账户和密码,那用户需要记住多少密码啊,于是我又开始想办法搞一个统一登录这样的东西。

但是网站的根基是PHP,难以和本地C++程序通信。于是使用了一个Midware用于PHP和C++通信。


都搞定之后,我把统一验证的这个机制加入到了游戏中。测试了一下,似乎还不错,能做到申请完用户立刻就能登录。

现在唯一缺少的就是美工啦>_< 自己不会PS和CSS完全不知道怎么才能让网站好看一点T_T...


最后,欢迎访问我的网站 GameHarbor(CN)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值