libuv::简介
由epoll,kqueue,IOCP和事件端口支持的功能齐全的事件循环。
异步TCP和UDP套接字
异步DNS解析
异步文件和文件系统操作
文件系统事件
ANSI转义码控制的TTY
具有套接字共享的IPC,使用Unix域套接字或命名管道(Windows)
子进程
线程池
信号处理
高分辨率时钟
线程和同步原语
//handle是持久化的对象。在异步操作中,相应的handle有许多关联的request。 typedef struct uv_loop_s uv_loop_t; // 事件循环 typedef struct uv_handle_s uv_handle_t; // 所有libuv句柄类型的基本类型。 typedef struct uv_stream_s uv_stream_t; // 流句柄提供双工通信通道的抽象。 uv_stream_t是一个抽象类,libuv提供的形式3个实现uv_tcp_t,uv_pipe_t和uv_tty_t。 typedef struct uv_tcp_s uv_tcp_t; // TCP手柄 typedef struct uv_udp_s uv_udp_t; // UDP手柄 typedef struct uv_pipe_s uv_pipe_t; // 管道句柄 typedef struct uv_tty_s uv_tty_t; // TTY句柄 typedef struct uv_poll_s uv_poll_t; // 轮询句柄, 轮询句柄用于监视文件描述符的可读性,可写性和断开性 typedef struct uv_timer_s uv_timer_t; // 计时器句柄 typedef struct uv_check_s uv_check_t; // 检查句柄, 在轮询I/O之后,检查句柄将在每个循环迭代中运行给定的回调一次。 typedef struct uv_idle_s uv_idle_t; // 空闲句柄 typedef struct uv_prepare_s uv_prepare_t; // 准备句柄 typedef struct uv_async_s uv_async_t; // 异步句柄, 异步句柄允许用户“唤醒”事件循环并获取从另一个线程调用的回调。 typedef struct uv_process_s uv_process_t; // 进程句柄, 进程句柄将产生一个新的进程,并允许用户控制它并使用流与它建立通信通道。 typedef struct uv_fs_event_s uv_fs_event_t; // FS事件句柄 typedef struct uv_fs_poll_s uv_fs_poll_t; // FS轮询句柄 typedef struct uv_signal_s uv_signal_t; // 信号句柄, 信号句柄在每个事件循环的基础上实现Unix风格的信号处理。
//request是短暂性的,通常只维持一个回调的时间,一般对应handle的一个IO操作。 typedef struct uv_req_s uv_req_t; // 基本请求,uv_req_t是所有libuv请求类型的基本类型。 typedef struct uv_getaddrinfo_s uv_getaddrinfo_t; // DNS实用程序功能,libuv提供getaddrinfo和getnameinfo的异步变体。 typedef struct uv_getnameinfo_s uv_getnameinfo_t; // DNS实用程序功能,libuv提供getaddrinfo和getnameinfo的异步变体。 typedef struct uv_shutdown_s uv_shutdown_t; // 关机请求类型。 typedef struct uv_write_s uv_write_t; // 编写请求类型。 typedef struct uv_connect_s uv_connect_t; // 连接请求类型。 typedef struct uv_udp_send_s uv_udp_send_t; // UDP句柄, UDP处理客户端和服务器的封装UDP通信。 typedef struct uv_fs_s uv_fs_t; // 文件系统请求类型。 typedef struct uv_work_s uv_work_t; // libuv提供了一个线程池,可用于运行用户代码并在循环线程中得到通知。 // 默认大小为4,但可以在启动时通过将UV_THREADPOOL_SIZE环境变量设置为任何值(绝对最大值为1024)来更改它 。
typedef struct uv_cpu_info_s uv_cpu_info_t; // CPU信息的数据类型。 typedef struct uv_interface_address_s uv_interface_address_t; // 接口地址的数据类型。 typedef struct uv_dirent_s uv_dirent_t; // typedef struct uv_passwd_s uv_passwd_t; // 密码文件信息的数据类型。