Emx::EuvStmServerHostBase类 参考abstract

面向连接的socket通信ServerHost端基类,是服务端的监听socket,实现了这种类型ServerHost端的创建销毁发送接收, 内部使用EuvStreamInf抽象接口作为底层通信接口,实际实现服务端的时候,需要传入继承EuvStreamInf的实例 并且最终的服务端需要继承EuvStmCServerHostBase类,实现其各种虚函数。可参MsgRpcServer的实现 更多...

#include "EuvStmServerBase.hpp"

类 Emx::EuvStmServerHostBase 继承关系图:

Public 成员函数

 EuvStmServerHostBase (EuvStreamInf *stm)
 
virtual ~EuvStmServerHostBase ()
 
ErrCodeE Create (EuvLoop &loop, const char *ip, uint16_t port, int maxClientNum, char *buffer, int32_t size)
 创建服务端并监听连接 更多...
 
void Destroy ()
 停止监听并销毁 更多...
 
void DisConnectClient (EuvStmServerClientBase *client)
 主动断开一个客户端的链接,断开后会触发OnClientDisConnect回调 更多...
 

Protected 成员函数

virtual EuvStmServerClientBaseOnAllocClient ()=0
 当有客户端到来时,需要分配一个继承自EuvStmServerClientBase的ServerClient客户端给ServerHost 更多...
 
virtual void OnClientConnect (EuvStmServerClientBase *client)=0
 当客户端成功连接时触发此回调 更多...
 
virtual void OnClientDisConnect (EuvStmServerClientBase *client)=0
 当客户端断开链接时触发此回调 更多...
 
virtual void OnRecv (EuvStmServerClientBase *client, char *data, int32_t size)=0
 当某个ServerClient接收到数据时触发此回调 更多...
 

详细描述

参见
MsgRpcServer

构造及析构函数说明

◆ EuvStmServerHostBase()

Emx::EuvStmServerHostBase::EuvStmServerHostBase ( EuvStreamInf stm)
inline

◆ ~EuvStmServerHostBase()

virtual Emx::EuvStmServerHostBase::~EuvStmServerHostBase ( )
inlinevirtual

成员函数说明

◆ Create()

ErrCodeE Emx::EuvStmServerHostBase::Create ( EuvLoop loop,
const char *  ip,
uint16_t  port,
int  maxClientNum,
char *  buffer,
int32_t  size 
)
参数
loop[in] 需要绑定的loop
ip[in] 需要绑定的本地ip,默认不绑定本地ip
port[in] 需要绑定的本地端口,默认不绑定本地端口
maxClientNum[in] 监听的最大连接数
buffer[in] 需要传入一个buffer,用于接收数据
size[in] buffer的大小
返回
ErrCodeE
参见
ErrCodeE

◆ Destroy()

void Emx::EuvStmServerHostBase::Destroy ( )

被这些函数引用 ~EuvStmServerHostBase().

◆ DisConnectClient()

void Emx::EuvStmServerHostBase::DisConnectClient ( EuvStmServerClientBase client)
参数
client[in] accept后的ServerClient客户端

◆ OnAllocClient()

virtual EuvStmServerClientBase* Emx::EuvStmServerHostBase::OnAllocClient ( )
protectedpure virtual
注解
分配的对象内存空间应由子类管理,EuvStmServerHostBase不会对此回调分配的对象内存空间的释放进行管理, 子类可以在OnClientDisConnect回调中或是回调后对EuvStmServerClientBase对象的内存进行回收。 OnAllocClient后的对象有可能并不经历OnClientConnect而直接断开触发OnClientDisConnect
返回
分配的对象指针

◆ OnClientConnect()

virtual void Emx::EuvStmServerHostBase::OnClientConnect ( EuvStmServerClientBase client)
protectedpure virtual
参数
client[in] 客户端指针(由OnAllocClient分配)

◆ OnClientDisConnect()

virtual void Emx::EuvStmServerHostBase::OnClientDisConnect ( EuvStmServerClientBase client)
protectedpure virtual
参数
client[in] 客户端指针(由OnAllocClient分配)

◆ OnRecv()

virtual void Emx::EuvStmServerHostBase::OnRecv ( EuvStmServerClientBase client,
char *  data,
int32_t  size 
)
protectedpure virtual
参数
client[in] 客户端指针(由OnAllocClient分配)
data[in] 接收到的数据指针
size[in] 接收到的数据大小