一步一步做高性能服务器(C++) -- Day 1

【回顾】

在昨天,写了博客,打算实现一个Game Server Frame.

并设定了初步目标。

【初步设计】

1. 今儿构思一番,画了一个Server的初步类图。考虑的不是很全面。

没有考虑如何实现热部署,没有考虑如何实现分布式,只是单纯的将TCP,UDP封装而已。

a) StreamIO类实现数据按1字节流向缓冲区,以及缓冲区按1字节流出数据。 在流入与流出的过程中实现AES256加密。

b) SocketHelper类实现数据包的发送与接收,与StreamIO类的关系为聚合。

(修改:此处考虑之后,决定合并为一个类。即将writer, reader, encrypt, decrypt函数迁移为socketHelper类的私有函数)。

c) Server类封装了消息队列、消息映射,以及连接池。与SocketHelper的关系为聚合。此处的设计稍微有些不合理,对于需求得把握不是很恰当,需要在实践中进行改进。

d) TCPServer与UDPServer为具体的逻辑处理类,继承自Server类。此处应当考虑下线程、进程以及分布式。

注:socket部分的实现,处于性能目的考虑,将依赖于libevent。

【代码】

代码尚未实现,需要在今天补上。

并push到bitbucket上。

地址:https://bitbucket.org/Allen_Wu/gas

项目名暂定为Gas。Gas原意为瓦斯、天然气。在此处,引申为能源,希望能通过这个项目给自己充满能量,且永不枯竭。

原文地址:https://www.cnblogs.com/coddingfun/p/3407728.html