游戏服务器(基于iocp)
来源:互联网 发布:淘宝入驻条件及流程 编辑:程序博客网 时间:2024/05/13 04:01
采用抽象类工厂的设计模式,将所有提供的类做了抽象:
如下:
#pragma once
////////////////////////////////////////////////////////////////////////////////
//! 提供服务器的监听,目的是开发人员可以自己数据
////////////////////////////////////////////////////////////////////////////////
class IServer;
class IServerListener
{
public:
/*------------------------------------------------------------------------------
@remarks:服务器成功建立
/------------------------------------------------------------------------------*/
virtual void onSetup(IServer* pSvr){};
/*------------------------------------------------------------------------------
@remarks:服务器运行事件
/------------------------------------------------------------------------------*/
virtual void onRun(IServer* pSvr){};
/*------------------------------------------------------------------------------
@remarks:服务器停止事件
/------------------------------------------------------------------------------*/
virtual void onStop(IServer* pSvr){};
/*------------------------------------------------------------------------------
@remarks:服务器错误处理事件
/------------------------------------------------------------------------------*/
virtual void onError(IServer* pSvr,ISessionPtr session,IBufferPtr buf,size_t nError){};
/*------------------------------------------------------------------------------
@remarks:服务器关闭退出
/------------------------------------------------------------------------------*/
virtual void onClose(IServer* pSvr){};
/*------------------------------------------------------------------------------
@remarks:当有连接进入,则调用该函数
@param:pSession当前会话
/------------------------------------------------------------------------------*/
virtual void onSessionEnter(IServer* pSvr,ISessionPtr pSession){};
/*------------------------------------------------------------------------------
@remarks:当有连接断开,则调用该函数
@param:pSession当前会话
@param nRes 断开的原因 目前 0
/------------------------------------------------------------------------------*/
virtual void onSessionLeaver( IServer* pSvr,ISessionPtr pSession,size_t nRes){};
/*------------------------------------------------------------------------------
@remarks:当接收到数据的时候调用该方法
@param:pSession当前会话
@param pData 接收到的数据,需要自己释放数据
@param nBuf :数据的大小
/------------------------------------------------------------------------------*/
virtual void onRecv( IServer* pSvr,ISessionPtr pSession,IBufferPtr buf,size_t nBuf){};
/*------------------------------------------------------------------------------
@remarks:消息被处理或者被执行通知
@param:pSession当前会话
@param pData 接收到的数据,需要自己释放数据
@param nBuf :数据的大小
/------------------------------------------------------------------------------*/
virtual void onDoTask( IServer* pSvr,ISessionPtr pSession,IBufferPtr buf,size_t nBuf){};
/*------------------------------------------------------------------------------
@remarks:发送数据的时候调用该方法
@param:pSession当前会话
@param buf 发送到数据
@param nBuf :数据的大小
/------------------------------------------------------------------------------*/
virtual void onSend( IServer* pSvr,ISessionPtr pSession,IBufferPtr buf,size_t nBuf){};
/*------------------------------------------------------------------------------
@remarks:数据库数据变化通知
@param buf 发送到数据
@param nBuf :数据的大小
/------------------------------------------------------------------------------*/
virtual void onDBNotify( IServer* pSvr,IBufferPtr buf,size_t nBuf){};
};
把自己的游戏服务器和大家共享,
支持高并发,5000+以上
内部采用iocp
内存管理采用引用计数
- 游戏服务器(基于iocp)
- 基于IOCP模型的.NET 游戏(火拼俄罗斯)
- 游戏服务器防护的一种实现方法(IOCP)
- C#编写基于.Net IOCP的高性能服务器
- C#编写基于.Net IOCP的高性能服务器
- TCP IOCP服务器源代码
- iocp一段服务器代码
- IOCP--Windows服务器编程
- 我的IOCP服务器
- IOCP服务器/客户端实现
- IOCP服务器模型
- IOCP服务器/客户端实现
- IOCP服务器开发常见问题
- IOCP服务器/客户端实现
- IOCP反射服务器
- 基于netty的rts游戏服务器搭建
- 基于事件的IOCP模型
- iocp三层架构服务器模型
- 妻子决定你未来事业的高度,男的看一看,女的学一学~~~~~~~
- 腾讯推出WebQQ
- 修改/etc/profile后command not found
- 《Java是如何快速煮成C#的?》(一):相似的方法(2)
- 周国平:独处也是一种能力
- 游戏服务器(基于iocp)
- Struts2的模型驱动
- VS2008 下弹出菜单ContextMenuStrip控件的使用
- HDU HDOJ1176 免费馅饼 结题报告
- ubuntu下的第一个c++程序
- twiproxy - 基于GTAP 0.4的twitter API proxy
- 批量替换Excel超级链接
- Http 请求处理流程[转]
- 记录一些API函数