Node.js之网络通讯模块实现浅析

发布时间:2017-04-13 15:44 编辑:站点网
前言想必我们在用Node.js用的最多的应该是创建http服务,所以对于每个Web开发工程师而言,Node.js的网络相关模块学习是必不可少。Node.js的网络模块架构在Node.js的模块里面,与网络相关的模块有Net、DNS、HTTP、TLS/SSL、HTTPS、UDP/Datagram,除此之外,还有v8底层相关的网络模块有tcp_wrap.cc、udp_wrap.cc、pipe_wrap.cc、stream_wrap.cc等等,在Javascript层以及C++层之间通过process.binding进行桥接相互通信。

图片:1.png

700)this.width=700;" style="max-width:700px;" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('https://www.javascriptcn.com/attachment/1704/thread/14_1_c79cfa43cfdd114.png');" />
Net模块Net模块提供了一些用于底层的网络通信接口,包括创建服务器以及客户端,其中HTTP模块也是基于Net模型的上层封装,在Net模块里面主要提供net.Server以及net.Socket创建TCP服务端创建一个TCP服务器,可以通过使用构造函数new net.Server或者使用工厂方法net.createServer,这两个方法都会返回一个net.Server类,可接收两个可选参数。var net = require('net'); var server = net.createServer(function(socket){ socket .on('data',function(data){ console.log('socket data',data.toString()); socket.write( data.toString() ); }) .on('end',function(){ console.log('socket end') }) .on('error',function(error){ console.log('socket error',error); }); }); server.listen(56200,function(){ console.log('server run at ',server.address()); }); server.on('error',function(err){ throw err; }); // 执行后:server run at { address: '::', family: 'IPv6', port: 56200 }
更多相关内容:
    无相关信息