网络模块
这次的网络模块主要使用I/O多路复用,就是reactor 模型,结合线程池来实现服务器的主体逻辑。
注册三个事件,读事件,写事件,连接事件。都是经典的网络编程范式,在这里不做过多的介绍。不过在包的数据结构设计方面肯定需要设计一番,但是这个数据关系到数据库的设计,所以我们后边再设计数据结构。
现在有两种情况,使用epoll 还是用libevent 函数库,还要研究一下。
大体结构如下:
数据传输结构:
服务器结构:
这只是粗略的考虑,比如超时问题如何解决等等。