node.js的http.createServer过程深入解析
到这我们终于看到了tcp连接的内容,每一个服务器新建一个handle并且保存他,该handle是一个TCP对象。TCP是C++提供的类。对应的文件是tcp_wrap.cc。首先我们先看一下uv_tcp_t结构体的结构。从代码可以知道,只是对uv_tcp_t结构体做了一些初始化操作。到这,new TCP的逻辑就执行完毕了。接下来就是继续分类nodejs里调用bind和listen的逻辑。nodejs的bind对应libuv的函数是uv__tcp_bind,listen对应的是uv_tcp_listen。最后执行bind函数进行绑定操作。OnConnection函数是在connection_wrap.cc定义的,tcp_wrapper继承了connection_wrap。OnConnection新建了一个uv_tcp_t结构体。最后执行nodejs的回调。最后执行_http_server.js设置的回调connectionListener。至此,服务器启动并且接收连接的过程就完成了。当用户传来数据时,处理数据的函数是uv__stream_io。
下载地址
用户评论