Libuv库(探讨)
文章平均质量分 74
C++开发出生,通过对libuv官网文档的阅读理解,以及源代码的分析,Demo的运行,整理了一份关于libuv库的调用。
knowledgebao
争做音视频智能化的领头人。
展开
-
WSAsocket
1. windows的socket解析1. windows的socket解析1.1. IoCompletion1.2. WSARecv1.1. IoCompletion// Windows Socket API 缩写为 WSA//功能:创建完成端口和关联完成端口HANDLE WINAPI CreateIoCompletionPort( __in HANDLE FileHandle, // 已经打开的文件句柄或者空句柄,一般是客户端的句柄 __原创 2021-01-27 14:24:03 · 823 阅读 · 0 评论 -
libuv10_源码分析
libuv源码分析参考资料源码原创 2021-01-27 14:20:52 · 1333 阅读 · 0 评论 -
libuv9_常用结构
1. libuv常用结构1. libuv常用结构1.1. 相关结构1.2. 时间相关1.3. poll1.4. 环境变量1.5. CPU相关1.6. 库调用1.7. other1.8. 参考资料1.1. 相关结构typedef struct uv_env_item_s uv_env_item_t;//详见下边内容typedef struct uv_cpu_info_s uv_cpu_info_t;typedef struct uv_interface_address_s原创 2021-01-26 14:05:42 · 621 阅读 · 0 评论 -
libuv8_process
1. libuv-进程1. libuv-进程1.1. 简介1.2. API1.3. 创建进程1.4. 父子进程分离1.5. 向进程发送信号1.6. 子进程I/O1.7. 管道1.8. 参考文章1.1. 简介 libuv提供子进程的管理工作,抽象平台的差异性,允许通过stream和pipe进行线程之间的交互 unix建议每个进程只做一件事并且做好。所以一个进程常常使用多个子进程来完成各种任务,类似于shell中使用多个pipe。与线程共享内存类似,含有消息的多进程模型也很原创 2021-01-26 14:05:01 · 316 阅读 · 0 评论 -
libuv7_thread
libuv7_thread简介 目前主要有二类线程,一种是window的POSIX,一种是linux的pthread,libuv封装的thread与pthread更相近 线程在libuv中有被使用,很多情况和loop关联,当然线程也可以单独使用 因为不同平台线程的封装,不是所有功能都覆盖,不是所有分支的API适合所有平台线程APIuv_thread_t //Thread data typetypedef void (*uv_thread_cb)(void* arg);//回调int原创 2021-01-26 14:04:21 · 361 阅读 · 0 评论 -
libuv6_file
1. libuv文件系统1. libuv文件系统1.1. 简介1.2. API说明1.2.1. 内容结构1.2.2. 文件句柄操作相关1.2.3. 文件直接操作1.2.4. 目录操作相关1.2.5. 文件属性相关1.2.6. 文件链接相关1.2.7. 文件监听相关1.3. Demo1.4. 参考资料1.1. 简介 文件相关的函数以uv_fs_开头,结构统一使用uv_fs_t,文件操作和网络操作不同,网络操作是底层异步API支持非阻塞,而文件系统内部是阻塞调用,通原创 2021-01-26 14:03:37 · 204 阅读 · 0 评论 -
libuv5_net
1. 网络1. 网络1.1. 简介1.2. UDP1.3. stream1.3.1. TCP1.3.2. PIPE1.3.3. TTY1.4. 其他API1.5. 参考资料1.1. 简介 libuv中的网络与直接使用BSD套接字接口没什么不同,有些东西更容易,都是非阻塞的,但概念保持不变。此外,libuv还提供实用程序功能来抽象恼人的,重复的和低级别的任务,例如使用BSD套接字结构设置套接字,DNS查找以及调整各种套接字参数。这里网络相关的主要涉及TCP和UDP,由于原创 2021-01-26 11:07:38 · 397 阅读 · 0 评论 -
libuv4_req
1. request handle1. request handle1.1. request对象1.2. getaddrinfo/getnameinfo地址转换1.4. 参考资料1.1. request对象#define UV_REQ_FIELDS \ /* public */原创 2021-01-26 11:07:02 · 145 阅读 · 1 评论 -
libuv3_handle
1. handle1. handle1.1. handle对象1.2. handle通用API1.3. uv_async_t1.4. idle/prepare/check1.5. 定时器timer1.6. 参考资料 loop的调度一般通过二种模式调度,一种是Handle,一种是Request。Handle一般关联一个长期任务,request关联一个一次性任务。比如一个socket的监听任务,就是uv_udp_t(handle),而一次数据的发送就是一个请求任务,关联请求句柄uv_原创 2021-01-26 11:06:31 · 259 阅读 · 0 评论 -
libuv2_loop
1. 异步调度1. 异步调度1.1. loop相关API1.2. 参考资料调度流程图 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ny0s0s9-1611630219101)(./img/loop.png)] 上图是loop的while循环流程。Updata loop time 为了减少系统时间依赖性,循环开始位置更新当前时间指。loop alive 判断loop是否存活,存活的条件:1 激活且被引用的handle,2 激活的requ原创 2021-01-26 11:04:57 · 287 阅读 · 0 评论 -
libuv1_概述
1. libuv概述1. libuv概述1.1. 简介1.2. 编译1.2.1. window编译1.2.2. linux编译1.3. 支持功能1.4. 架构1.4.1. handles and requests1.4.2. The I/O loop1.5. 参考资料1.1. 简介 本文基于libuv-v1.22.0进行解释说明,适合于异步调度使用者。要求有C语言基础。 node.js 最初发起于 2009 年, 是一个可以让 Javascript 代码脱原创 2021-01-26 11:02:25 · 530 阅读 · 1 评论 -
异步调度
1. 异步调度1. 异步调度1.1. 异步设计模型1.1.1. Reactor1.1.2. Proactor1.2. 常见I/O模型分类1.2.1. blocking I/O1.2.2. nonblocking I/O1.2.3. I/O multiplexing (select and poll)1.2.4. signal driven I/O (SIGIO)1.2.5. asynchronous I/O (the POSIX aio_functions)1.3. s原创 2021-01-26 10:25:21 · 649 阅读 · 0 评论 -
Libuv库(探讨)---第一节:概述
索引目录:https://blog.youkuaiyun.com/knowledgebao/article/details/84776754本文基于libuv-v1.22.0进行解释说明,适合于异步调度使用者。要求有C语言基础。node.js 最初发起于 2009 年, 是一个可以让 Javascript 代码脱离浏览器的执行环境, libuv 使用了 Google 的 V8 执行引擎 和 Ma...原创 2018-08-31 09:43:35 · 780 阅读 · 0 评论 -
Libuv库(探讨)---第二节:异步调度
索引目录:https://blog.youkuaiyun.com/knowledgebao/article/details/84776754目录异步调度逻辑loop相关APIloop运行handle相关:线程通信异步消息异步调度逻辑libuv是一个高性能事件驱动库,屏蔽了各种操作系统的差异从而提供了统一的API。libuv严格使用异步、事件驱动的编程风格。其核心工作是提供事...原创 2018-08-31 10:12:45 · 4412 阅读 · 0 评论 -
Libuv库(探讨)---第三节:文件系统
索引目录:https://blog.youkuaiyun.com/knowledgebao/article/details/84776754libuv provides a wide variety of cross-platform sync and async file system operations. All functions defined in this document take a c...原创 2018-08-31 10:35:56 · 1476 阅读 · 0 评论 -
Libuv库(探讨)---第四节:网络相关
索引目录:https://blog.youkuaiyun.com/knowledgebao/article/details/84776754目录系列目录:Stream基类相关TTYPIPETCPUDPNetworking in libuv is not much different from directly using the BSD socket interface, so...原创 2018-08-31 10:37:02 · 2711 阅读 · 0 评论 -
Libuv库(探讨)---第五节:线程相关
索引目录:https://blog.youkuaiyun.com/knowledgebao/article/details/84776754Threads are used internally to fake the asynchronous nature of all of the system calls. libuv also uses threads to allow you, the appl...原创 2018-08-31 10:37:37 · 1070 阅读 · 0 评论 -
Libuv库(探讨)---第六节:进程相关
索引目录:https://blog.youkuaiyun.com/knowledgebao/article/details/84776754libuv offers considerable child process management, abstracting the platform differences and allowing communication with the child pro...原创 2018-08-31 10:38:35 · 1756 阅读 · 0 评论 -
Libuv库(探讨)---第七节:高级调度
系列目录:libuv概设:https://blog.youkuaiyun.com/knowledgebao/article/details/82251307libuv异步调度:https://blog.youkuaiyun.com/knowledgebao/article/details/82251513libuv文件系统:https://blog.youkuaiyun.com/knowledgebao/article/...原创 2018-08-31 10:39:15 · 1356 阅读 · 0 评论 -
Libuv库(探讨)---第八节:其他
索引目录:https://blog.youkuaiyun.com/knowledgebao/article/details/84776754http://docs.libuv.org/en/v1.x/timer.htmlhttp://docs.libuv.org/en/v1.x/errors.htmlhttp://docs.libuv.org/en/v1.x/misc.html这一章包含一些通...原创 2018-08-31 10:39:50 · 1397 阅读 · 0 评论