5 #ifndef EMX_EUVSTMCLIENTBASE_HPP
6 #define EMX_EUVSTMCLIENTBASE_HPP
9 #include "EuvStreamInf.hpp"
25 m_isConnected =
false;
43 const char *serverIp, uint16_t serverPort,
44 const char *localIp =
nullptr, uint16_t localPort = 0);
76 char name[EMX_MAX_PATH_SIZE] = {};
77 size_t size = EMX_MAX_PATH_SIZE;
87 char name[EMX_MAX_PATH_SIZE] = {};
88 size_t size = EMX_MAX_PATH_SIZE;
106 virtual void OnRecv(
const char *data, int32_t size) {};
119 std::shared_ptr<std::string> data;
实现多路复用循环的主体,所有基于EuvLoop的事件都应绑定到一个EuvLoop上
Definition: EuvLoop.hpp:18
面向连接的socket通信Client端基类,实现了这种类型客户端的创建销毁发送接收, 内部使用EuvStreamInf抽象接口作为底层通信接口,实际实现客户端的时候,需要传入继承EuvStreamIn...
Definition: EuvStmClientBase.hpp:21
virtual ~EuvStmClientBase()
Definition: EuvStmClientBase.hpp:28
ErrCodeE ResumeRecv()
开始接收数据/重新开始接收数据
virtual void OnSendDone(ErrCodeE e, const char *buffer, int32_t size)
当调用Send函数发送的数据成功发送至服务端,或出现错误时触发次回调
Definition: EuvStmClientBase.hpp:114
std::string GetSockName()
获取本地地址
Definition: EuvStmClientBase.hpp:75
virtual void OnConnect()=0
当与服务端的链接建立成功后触发此函数的调用
ErrCodeE Send(std::shared_ptr< std::string > &data)
向服务端发送数据
ErrCodeE Create(EuvLoop &loop, char *buffer, int32_t size, const char *serverIp, uint16_t serverPort, const char *localIp=nullptr, uint16_t localPort=0)
创建客户端并连接服务端
bool IsReceiving()
获取当前客户端是否正在监听接收
Definition: EuvStmClientBase.hpp:69
virtual void OnRecv(const char *data, int32_t size)
当有数据到来时触发此函数的调用
Definition: EuvStmClientBase.hpp:106
EuvStmClientBase(EuvStreamInf *stm)
Definition: EuvStmClientBase.hpp:24
std::string GetPeerName()
获取对方地址
Definition: EuvStmClientBase.hpp:86
void PauseRecv()
停止接收,调用后将不会收到数据
virtual void OnDisConnect()=0
当与服务端的链接断开后触发此函数的调用
面向链接类型的抽象接口(例如tcp/pipe),用于为EuvStmClientBase/EuvStmServerHostBase等提供统一的底层通信接口
Definition: EuvStreamInf.hpp:17
virtual bool IsReceiving()=0
获取当前描述符是否监听接收
virtual ErrCodeE GetSockName(void *name, size_t &len)=0
获取本地地址
virtual ErrCodeE GetPeerName(void *name, size_t &len)=0
获取对方地址
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10