因为udp是不需要connet的时候,所以第一反应就是去掉host绑定,指定addr发送数据即可。但是事实总是报告client not ready。查看lacewing::udp 源码发现,udp 只有在host函数调用后才创建socket。所以lacewing不支持udp客户端。
void lw_udp_host_filter (lw_udp ctx, lw_filter filter) { lw_udp_unhost (ctx); lw_error error = lw_error_new (); if ((ctx->socket = lwp_create_server_socket (filter, SOCK_DGRAM, IPPROTO_UDP, error)) == -1) { if (ctx->on_error) ctx->on_error (ctx, error); return; } ctx->filter = lw_filter_clone (filter); lw_pump_add (ctx->pump, (HANDLE) ctx->socket, ctx, udp_socket_completion); ctx->port = lwp_socket_port (ctx->socket); post_receives (ctx); }