• 一步一步做高性能服务器(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原意为瓦斯、天然气。在此处,引申为能源,希望能通过这个项目给自己充满能量,且永不枯竭。

  • 相关阅读:
    PHP 进制汉字转化
    当调用方法没有注释信息并且参数不全
    DBCP数据库连接池技术的两种实现方式
    汇编语言中一步执行循环
    求最小函数依赖集
    汇编语言实验四
    汇编语言第七章
    batch实现数据库的批量插入Unknown system variable 'query_cache_size'
    汇编语言第一节课:数制转换,真值和补码
    Forsaken喜欢数论
  • 原文地址:https://www.cnblogs.com/coddingfun/p/3407728.html
Copyright © 2020-2023  润新知