nodejs libuv
文章平均质量分 74
limite_god
从c到java,从java到php,再到java,到nodejs,再到c,就像一个轮回。
展开
-
libuv程序,捕获Ctrl+C事件
在命令行下执行程序的时候,我们经常使用Ctrl+C来停止程序的执行。下面,我们看看libuv库如何捕获这个事件思路我们开启一个空转的消息,让程序一直有消息可以消费,不至于退出,在捕获Ctrl+C事件之后,停止空转消息,程序自然就退出了。代码/* * test_signal_ctrl_c.cc * when user input ctrl+c, we can get th原创 2015-02-09 11:22:26 · 2339 阅读 · 0 评论 -
libuv文件操作
libuv对文件操作的函数都封装在uv_fs开头的函数中,相关的handle就是uv_fs_t/uv_fs_s,我们来看一些它的定义/* uv_fs_t is a subclass of uv_req_t */struct uv_fs_s { UV_REQ_FIELDS uv_fs_type fs_type; uv_loop_t* loop; uv_fs_cb cb; s原创 2015-02-09 14:41:07 · 3634 阅读 · 0 评论 -
libuv入门之hello world
先声明一下我的工作主目录为:/data/workspace/nodejs/learn_nodejs/node_modules/libuv, 在后面我会简称为$PATH。第一步,编写代码在$PATH下新建test.cc,内容如下/* * test.cc * empty msg loop * 这个例子新建了一个消息队列,但队列里没有任何消息,程序直接退出 * Created on原创 2015-02-06 15:40:58 · 2820 阅读 · 0 评论 -
linux下nodejs依赖库libuv库,开发环境准备
nodejs底层使用libuv库实现异步IO,如果对nodejs的回调函数习以为常,而不知libuv,那岂不是很遗憾。libuv在github上托管了自己的源码,但是我要学习的是希望适用于nodejs某一个版本的,这样的代码是可以经过简单处理,在nodejs之调用的。第一步 下载nodejs源代码打开nodejs官网,下载nodejs的源代码,注意,是源代码包。我使用的源码包版本是0.10原创 2015-02-06 14:55:53 · 1814 阅读 · 0 评论 -
libuv之async使用
libuv中async的使用比较难理解一些,我们来一起学习下简介vu_async_t是我们要用的handle,这个handle用来在线程间通信的。我们看一下官方的解释/* * uv_async_t is a subclass of uv_handle_t. * * uv_async_send wakes up the event loop and calls the async原创 2015-02-10 10:43:31 · 11714 阅读 · 0 评论 -
libuv多线程处理的简单示例
简介libuv提供了多线程处理的封装,使用起来也非常简单,一个handle,即uv_thread_t,在linux环境下,就是pthread_t,也就是unsigned long类型。相关的三个函数为UV_EXTERN int uv_thread_create(uv_thread_t *tid, void (*entry)(void *arg), void *arg);UV_EX原创 2015-02-09 10:41:11 · 13297 阅读 · 1 评论 -
libuv之开启tcp服务端监听,并获得客户端的ip及端口
libuv中处理tcp连接的handle叫做uv_tcp_t,可以认为它是uv_stream_t的子类,所以它是可以当作流来使用的,这篇主要内容不在这,其实主要介绍两个函数UV_EXTERN int uv_tcp_getsockname(uv_tcp_t* handle, struct sockaddr* name, int* namelen);UV_EXTERN int uv_tc原创 2015-02-12 15:17:46 · 9040 阅读 · 0 评论