fastdo
0.6.8
|
基础服务器类 更多...
#include <eiennet_socket.hpp>
Public 类型 | |
using | ClientDataNotifyHandlerFunction = std::function< void(winux::SharedPointer< ClientCtx > clientCtxPtr, size_t readableSize) > |
using | ClientDataArrivedHandlerFunction = std::function< void(winux::SharedPointer< ClientCtx > clientCtxPtr, winux::Buffer data) > |
using | CreateClientHandlerFunction = std::function< ClientCtx *(winux::uint64 clientId, winux::String const &clientEpStr, winux::SharedPointer< ip::tcp::Socket > clientSockPtr) > |
Public 成员函数 | |
Server () | |
构造函数0,不会启动服务,必须手动调用startup() 更多... | |
Server (bool autoReadData, ip::EndPoint const &ep, int threadCount=4, int backlog=0, double serverWait=0.002, double verboseInterval=0.01, bool verbose=true) | |
构造函数1,会启动服务 更多... | |
virtual | ~Server () |
bool | startup (bool autoReadData, ip::EndPoint const &ep, int threadCount=4, int backlog=0, double serverWait=0.002, double verboseInterval=0.01, bool verbose=true) |
启动服务器 更多... | |
virtual int | run (void *runParam) |
运行 更多... | |
void | stop (bool b=true) |
是否停止服务运行 更多... | |
size_t | getClientsCount () const |
获取客户连接数 更多... | |
void | removeClient (winux::uint64 clientId) |
移除客户连接 更多... | |
void | onClientDataNotifyHandler (ClientDataNotifyHandlerFunction handler) |
void | onClientDataArrivedHandler (ClientDataArrivedHandlerFunction handler) |
void | onCreateClientHandler (CreateClientHandlerFunction handler) |
Protected 成员函数 | |
winux::SharedPointer< ClientCtx > & | _addClient (ip::EndPoint const &clientEp, winux::SharedPointer< ip::tcp::Socket > clientSockPtr) |
添加一个客户连接,会触发调用onCreateClient()创建客户场景对象 更多... | |
template<typename _Fx , typename... _ArgType> | |
void | _postTask (winux::SharedPointer< ClientCtx > clientCtxPtr, _Fx fn, _ArgType &&...arg) |
往线程池投递任务 更多... | |
virtual void | onClientDataNotify (winux::SharedPointer< ClientCtx > clientCtxPtr, size_t readableSize) |
virtual void | onClientDataArrived (winux::SharedPointer< ClientCtx > clientCtxPtr, winux::Buffer data) |
virtual ClientCtx * | onCreateClient (winux::uint64 clientId, winux::String const &clientEpStr, winux::SharedPointer< ip::tcp::Socket > clientSockPtr) |
Protected 属性 | |
winux::ThreadPool | _pool |
线程池 更多... | |
winux::RecursiveMutex | _mtxServer |
互斥量保护服务器共享数据 更多... | |
ip::tcp::Socket | _servSockA |
服务器监听套接字A 更多... | |
ip::tcp::Socket | _servSockB |
服务器监听套接字B 更多... | |
std::map< winux::uint64, winux::SharedPointer< ClientCtx > > | _clients |
客户映射表 更多... | |
winux::uint64 | _cumulativeClientId |
客户唯一标识 更多... | |
bool | _stop |
是否停止 更多... | |
bool | _servSockAIsListening |
servSockA是否处于监听中 更多... | |
bool | _servSockBIsListening |
servSockB是否处于监听中 更多... | |
bool | _isAutoReadData |
是否自动读取客户到达的数据。当为true时,客户数据达到时调用ClientDataArrived事件,否则调用ClientDataNotify事件 更多... | |
double | _serverWait |
服务器IO等待时间间隔(秒) 更多... | |
double | _verboseInterval |
Verbose信息刷新间隔(秒) 更多... | |
bool | _verbose |
显示提示信息 更多... | |
ClientDataNotifyHandlerFunction | _ClientDataNotifyHandler |
ClientDataArrivedHandlerFunction | _ClientDataArrivedHandler |
CreateClientHandlerFunction | _CreateClientHandler |
基础服务器类
直接使用时,需要给定事件处理;继承时需要override相应的事件虚函数。
事件:
ClientDataNotify/ClientDataArrived - 客户数据通知/客户数据到达
CreateClient - 创建客户场景时
在文件 eiennet_socket.hpp 第 980 行定义.
using eiennet::Server::ClientDataArrivedHandlerFunction = std::function< void ( winux::SharedPointer<ClientCtx> clientCtxPtr, winux::Buffer data ) > |
在文件 eiennet_socket.hpp 第 1068 行定义.
using eiennet::Server::ClientDataNotifyHandlerFunction = std::function< void ( winux::SharedPointer<ClientCtx> clientCtxPtr, size_t readableSize ) > |
在文件 eiennet_socket.hpp 第 1061 行定义.
using eiennet::Server::CreateClientHandlerFunction = std::function< ClientCtx * ( winux::uint64 clientId, winux::String const & clientEpStr, winux::SharedPointer<ip::tcp::Socket> clientSockPtr ) > |
在文件 eiennet_socket.hpp 第 1075 行定义.
eiennet::Server::Server | ( | ) |
构造函数0,不会启动服务,必须手动调用startup()
eiennet::Server::Server | ( | bool | autoReadData, |
ip::EndPoint const & | ep, | ||
int | threadCount = 4 , |
||
int | backlog = 0 , |
||
double | serverWait = 0.002 , |
||
double | verboseInterval = 0.01 , |
||
bool | verbose = true |
||
) |
构造函数1,会启动服务
autoReadData | 是否自动读取数据。当为true时,客户数据达到时调用ClientDataArrived事件,否则调用ClientDataNotify事件 |
ep | 服务监听的EndPoint |
threadCount | 线程池线程数量 |
backlog | listen(backlog) |
serverWait | 服务器IO等待时间 |
verboseInterval | verbose信息刷新间隔 |
verbose | 是否显示提示信息 |
|
virtual |
|
protected |
添加一个客户连接,会触发调用onCreateClient()创建客户场景对象
|
inlineprotected |
size_t eiennet::Server::getClientsCount | ( | ) | const |
获取客户连接数
|
inlineprotectedvirtual |
被 eienwebx::HttpApp 重载.
在文件 eiennet_socket.hpp 第 1068 行定义.
|
inline |
在文件 eiennet_socket.hpp 第 1068 行定义.
|
inlineprotectedvirtual |
在文件 eiennet_socket.hpp 第 1061 行定义.
|
inline |
在文件 eiennet_socket.hpp 第 1061 行定义.
|
protectedvirtual |
被 eienwebx::HttpApp 重载.
|
inline |
在文件 eiennet_socket.hpp 第 1075 行定义.
void eiennet::Server::removeClient | ( | winux::uint64 | clientId | ) |
移除客户连接
|
virtual |
运行
被 eienwebx::HttpApp 重载.
bool eiennet::Server::startup | ( | bool | autoReadData, |
ip::EndPoint const & | ep, | ||
int | threadCount = 4 , |
||
int | backlog = 0 , |
||
double | serverWait = 0.002 , |
||
double | verboseInterval = 0.01 , |
||
bool | verbose = true |
||
) |
启动服务器
autoReadData | 是否自动读取数据。当为true时,客户数据达到时调用ClientDataArrived事件,否则调用ClientDataNotify事件 |
ep | 服务监听的EndPoint |
threadCount | 线程池线程数量 |
backlog | listen(backlog) |
serverWait | 服务器IO等待时间 |
verboseInterval | verbose信息刷新间隔 |
verbose | 是否显示提示信息 |
void eiennet::Server::stop | ( | bool | b = true | ) |
是否停止服务运行
|
protected |
在文件 eiennet_socket.hpp 第 1068 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 1061 行定义.
|
protected |
客户映射表
在文件 eiennet_socket.hpp 第 1043 行定义.
|
protected |
在文件 eiennet_socket.hpp 第 1075 行定义.
|
protected |
客户唯一标识
在文件 eiennet_socket.hpp 第 1045 行定义.
|
protected |
是否自动读取客户到达的数据。当为true时,客户数据达到时调用ClientDataArrived事件,否则调用ClientDataNotify事件
在文件 eiennet_socket.hpp 第 1049 行定义.
|
protected |
互斥量保护服务器共享数据
在文件 eiennet_socket.hpp 第 1040 行定义.
|
protected |
线程池
在文件 eiennet_socket.hpp 第 1039 行定义.
|
protected |
服务器IO等待时间间隔(秒)
在文件 eiennet_socket.hpp 第 1051 行定义.
|
protected |
服务器监听套接字A
在文件 eiennet_socket.hpp 第 1041 行定义.
|
protected |
servSockA是否处于监听中
在文件 eiennet_socket.hpp 第 1047 行定义.
|
protected |
服务器监听套接字B
在文件 eiennet_socket.hpp 第 1042 行定义.
|
protected |
servSockB是否处于监听中
在文件 eiennet_socket.hpp 第 1048 行定义.
|
protected |
是否停止
在文件 eiennet_socket.hpp 第 1046 行定义.
|
protected |
显示提示信息
在文件 eiennet_socket.hpp 第 1053 行定义.
|
protected |
Verbose信息刷新间隔(秒)
在文件 eiennet_socket.hpp 第 1052 行定义.