网上开源的C/C++服务器框架 还是比较少的。 最近研究了 spserver , 里面用了较多的设计模式,使用设计模式的目的是把不变的东西和可变的东西分离并且封装起来,避免以后修改代码, 应用设计模式的书里面讲的就是 “对修改关闭,对扩展开放”,但是滥用设计模式会把简单的问题复杂话了。
spserver代码量比较少,比较容易看懂,如果只是做一个简单的echo服务器的话,spserver 可以给新手一个快速搭建服务器的框架。
用vld测试后, 发现spserver有很多内存泄露的地方。并且 msgqueue_destroy 函数会造成线程阻塞,程序无法正常结束。
spserver 里面的半同步半异步模式相当于 主线程负责所有的数据收发, 工作者线程负责逻辑。 主线程与工作者线程之间通过消息队列进行通信。主线程收到数据后,通知工作者线程,有数据,工作者线程进行报文解析与处理, 把要发送的数据放入队列,然后通知主线程,有数据了, 你去发送把。
这种模型可以应对逻辑复杂, 处理时间长, 需要发送和接收的数据比较少的情况比较合适。但是如果是需要处理类似文件服务器这样,IO的数据很多,但是逻辑很简单的服务器,则不合适, 主线程会成为瓶颈,也即是说IO会成为瓶颈。
另外是spserver 没有实现 作为客户端连接其他服务器的代码,需要用户自己实现连接到其他服务器的情况。
我现在正在封装一个开源的服务器框架,这个框架会比spserver更通用,范围更广,会根据游戏服务器的系统架构封装一套比较完整的实现, 从数据库代理服务器,登录服务器,大厅服务器,游戏服务器, 网关服务器等进行框架的处理。
分享到:
相关推荐
MYQQA 框架开源源码 , 仅供研究学习使用!MYQQA 框架开源源码 , 仅供研究学习使用!MYQQA 框架开源源码 , 仅供研究学习使用!MYQQA 框架开源源码 , 仅供研究学习使用!MYQQA 框架开源源码 , 仅供研究学习使用!MYQQA 框架...
Hikyuu Quant Framework是一款基于C++/Python的开源量化交易研究框架,用于策略分析及回测(仅受限于数据,如有数据也可用于期货等)。其核心思想基于当前成熟的系统化交易方法,将整个系统化交易抽象为由市场环境...
tosaas 开发框架是一款通用的 saas 开发框架,能快速的将传统单企业应用转化成saas多租户模式,支持大数据存储高并发访问,支持无限水平扩展存储服务器、应用服务器数量,经受过百万级用户的实际应用考验。
最新开源ET游戏服务器框架 使用非常方便 MongoDB数据库
开源框架研究
spring等开源框架的分析。
java开源mvc框架源码,应用多种设计模式,适合中小型企业和学习
一种开源的业务系统Winform框架,带源码,带教程PPT文件
三个基于WebRTC开源MCU框架的横向对比
Lua游戏服务器框架开源源码-----crossover
java开源框架实例java开源框架实例java开源框架实例
tracker, 在开源物理框架中构建视频分析建模工具 跟踪器基于开源物理( 宋体) 框架的视频分析与建模工具。这里代码需要在 opensourcephysics/OSP 存储库中提供OSP核心库。可选的Xuggle视频引擎支持在 ...
基于开源组件的ERP 系统框架研究
pomelo-citrus是一个使用Ruby编程语言开发的开源游戏服务器框架,其软件架构和设计均来源于pomelo并已实现了pomelo的大部分功能。 标签:pomelo
开源框架 achartengine.jar 安卓图表框架。 开源框架achartengine.jar achartengine
Lucene是非常优秀的成熟的开源的免费的纯java语言的全文索引检索工具包。 2001年10月贡献给APACHE,成为APACHE基金的一个子项目。 开源,可扩展能力强,有各种语言版本,适合各种平台,
此开发框架为免费开源的开发框架,会不断更新版本,旨在征集开源爱好者的建议,为广大开发者提供一个有利于学习、快速开发高性能软件的框架,此框架对所有源码开放。
springCloud是基于SpringBoot的一整套实现微服务的框架。他提供了微服务开发所需的配置... SpringBoot旨在简化创建产品级的 Spring 应用和服务,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用微服务功能。
DWR js框架 javascript框架 web与java交互 Direct Web Remoting Ajax开源框架 即有java源码又有dwr.jar包 有实现步骤及演示源码
STM32的开源Bootloader框架 RT-FOTA 移植 文档对应的源码程序 https://blog.csdn.net/weixin_39946218/article/details/124491960