设计概述
http://docs.libuv.org/en/v1.x/design.html
服务器绑定端口
1: 初始化服务器 udp handle: uv_udp_init(event_loop, &udp_server);
2:配置绑定IP与端口:
struct sockaddr_in addr;
uv_ip4_addr(“0.0.0.0”, 6080, &addr);
uv_udp_bind(&udp_server, (const struct sockaddr*)&addr, 0);
3:告诉event loop,管理数据:
uv_udp_recv_start(&udp_server, uv_alloc_buf, uv_udp_recv_data);
4:告诉event loop, 不要管理这个 handle的 读数据事件: uv_udp_recv_stop
获取地址
1:ipv4为例:
ip + 端口与 struct sockaddr_in addr转换;
uv_ip4_addr(“0.0.0.0”, 6080, &addr)
struct sockaddr addr –> ip + 端口转换;
uv_ip4_name(addr, buf, buf_size): 获取ip地址;
ntohs(((struct sockaddr_in*)addr)->sin_port)
发送数据
:uv_udp_send: 发送数据;