26 std::function<void(
Emx::ErrCodeE e,
const char *data, int32_t size,
const struct sockaddr *addr)>;
86 int32_t
Send(uint8_t *data, int32_t size,
const struct sockaddr *addr, socklen_t addrLen) {
87 return sendto(m_udp->io_watcher.fd, data, size, 0, addr, addrLen);
128 int32_t
GetFD() {
return m_udp->io_watcher.fd; }
137 static void OnDestroy(uv_handle_t *handle);
实现多路复用循环的主体,所有基于EuvLoop的事件都应绑定到一个EuvLoop上
Definition: EuvLoop.hpp:18
基于EuvLoop的UDP异步接收发送类
Definition: EuvUdp.hpp:16
ErrCodeE Bind(const struct sockaddr *addr, unsigned int flags)
创建一个socket并绑定到本地的地址
ErrCodeE SetBroadcast(bool ena)
使能广播
bool IsReceiving()
获取当前描述符是否监听接收
Definition: EuvUdp.hpp:134
int32_t Send(uint8_t *data, int32_t size, const struct sockaddr *addr, socklen_t addrLen)
以阻塞的方式发送数据
Definition: EuvUdp.hpp:86
ErrCodeE StartRecv(char *buffer, int32_t size, RecvCallback cbRecv)
开始接收数据
virtual ~EuvUdp()
Definition: EuvUdp.hpp:30
uv_udp_t * GetUDP()
获取libuv的udp句柄
Definition: EuvUdp.hpp:122
ErrCodeE Create(EuvLoop &loop)
创建UDP并绑定到loop
ErrCodeE GetSockName(struct sockaddr *name, int *len)
获取本地地址
void StopRecv()
停止接收数据
Definition: EuvUdp.hpp:76
EuvUdp()
Definition: EuvUdp.hpp:28
size_t GetSendQueueSize()
获取发送等待队列中的数据大小
Definition: EuvUdp.hpp:110
std::function< void(Emx::ErrCodeE e, const char *data, int32_t size, const struct sockaddr *addr)> RecvCallback
当接收到数据后会调用此回调函数
Definition: EuvUdp.hpp:26
int32_t GetFD()
获取文件描述符fd
Definition: EuvUdp.hpp:128
ErrCodeE GetPeerName(struct sockaddr *name, int *len)
获取对端A地址
ErrCodeE OpenExistSock(uv_os_sock_t sock)
可以使用一个已经打开的socket上
size_t GetSendQueueCount()
获取发送等待队列的个数
Definition: EuvUdp.hpp:116
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10