![]() |
基于EuvLoop的UDP异步接收发送类
#include "EuvUdp.hpp"
Public 类型 | |
| using | RecvCallback = std::function< void(Emx::ErrCodeE e, const char *data, int32_t size, const struct sockaddr *addr)> |
| 当接收到数据后会调用此回调函数 更多... | |
Public 成员函数 | |
| EuvUdp () | |
| virtual | ~EuvUdp () |
| ErrCodeE | Create (EuvLoop &loop) |
| 创建UDP并绑定到loop 更多... | |
| void | Destroy () |
| 销毁UDP 更多... | |
| ErrCodeE | OpenExistSock (uv_os_sock_t sock) |
| 可以使用一个已经打开的socket上 更多... | |
| ErrCodeE | Bind (const struct sockaddr *addr, unsigned int flags) |
| 创建一个socket并绑定到本地的地址 更多... | |
| ErrCodeE | SetBroadcast (bool ena) |
| 使能广播 更多... | |
| ErrCodeE | StartRecv (char *buffer, int32_t size, RecvCallback cbRecv) |
| 开始接收数据 更多... | |
| void | StopRecv () |
| 停止接收数据 更多... | |
| int32_t | Send (uint8_t *data, int32_t size, const struct sockaddr *addr, socklen_t addrLen) |
| 以阻塞的方式发送数据 更多... | |
| ErrCodeE | GetPeerName (struct sockaddr *name, int *len) |
| 获取对端A地址 更多... | |
| ErrCodeE | GetSockName (struct sockaddr *name, int *len) |
| 获取本地地址 更多... | |
| size_t | GetSendQueueSize () |
| 获取发送等待队列中的数据大小 更多... | |
| size_t | GetSendQueueCount () |
| 获取发送等待队列的个数 更多... | |
| uv_udp_t * | GetUDP () |
| 获取libuv的udp句柄 更多... | |
| int32_t | GetFD () |
| 获取文件描述符fd 更多... | |
| bool | IsReceiving () |
| 获取当前描述符是否监听接收 更多... | |
| using Emx::EuvUdp::RecvCallback = std::function<void(Emx::ErrCodeE e, const char *data, int32_t size, const struct sockaddr *addr)> |
| e | [in] 接收错误信息 |
| data | [in] 接收到的数据指针 |
| size | [in] 接收到的数据大小 |
| addr | [in] 对方的地址 |
|
inline |
|
inlinevirtual |
| void Emx::EuvUdp::Destroy | ( | ) |
被这些函数引用 ~EuvUdp().
| ErrCodeE Emx::EuvUdp::OpenExistSock | ( | uv_os_sock_t | sock | ) |
| sock | 需要使用的socket |
| ErrCodeE Emx::EuvUdp::Bind | ( | const struct sockaddr * | addr, |
| unsigned int | flags | ||
| ) |
| addr | [in] 地址 |
| flags | [in] 同bind函数 |
| ErrCodeE Emx::EuvUdp::SetBroadcast | ( | bool | ena | ) |
| ena | [in] 是否使能 |
| ErrCodeE Emx::EuvUdp::StartRecv | ( | char * | buffer, |
| int32_t | size, | ||
| RecvCallback | cbRecv | ||
| ) |
| buffer | [in] 接收数据所使用的buffer指针 |
| size | [in] 接受数据所使用的buffer大小 |
| cbRecv | [in] 当数据到来时的回调函数 |
|
inline |
|
inline |
| data | [in] 发送的数据指针 |
| size | [in] 发送的数据大小 |
| addr | [in] 发送的目的地址 |
| addrLen | [in] 发送的目的地址结构体长度 |
| ErrCodeE Emx::EuvUdp::GetPeerName | ( | struct sockaddr * | name, |
| int * | len | ||
| ) |
| name | [out] 存储地址的buffer |
| len | [in,out] 存储地址的buffer最大大小,返回实际地址长度 |
| ErrCodeE Emx::EuvUdp::GetSockName | ( | struct sockaddr * | name, |
| int * | len | ||
| ) |
| name | [out] 存储地址的buffer |
| len | [in,out] 存储地址的buffer最大大小,返回实际地址长度 |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |