
图片:1.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 }var net = require('net'); var client = net.createConnection({port:56200,host:'localhost'});
 client.on('connect',function(){
 console.log('client connect');});
 client.on('data',function(data){
 console.log('client data',toString());});
 client.on('error',function(error){ throw error;});
 client.on('close',function(){
 console.log('client close');});var net = require('net');var biz = require('./biz');var server = net.createServer(function(socket){
 
 socket .on('data',function(data){
 biz.do(data) .then(function(){ if( !socket.destroyed ) {
 socket.write( data.toString() ); } else { // do some report
 socket.destry(); } }) .catch(function(){ !socket.destroyed && socket.end('server handler error'); }); 
 }) .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;});var net = require('net');var MAX_REQUEST_BYTES = 2 * 1024 * 1024; // 2Mvar server = net.createServer(function(socket){
 
 socket .on('data',function(data){ 
 if(data.bytesRead > MAX_REQUEST_BYTES) {
 socket.pause();
 socket.end('data is too big, forbidden'); // do some report } }) .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;});