首页 Node.js核心模块手册

参数说明


createServer(options, callback)
options{        可选,对象数组
  allowHalfOpen:false    参数值:
                           false默认,接收到FIN包时会回发一个FIN包
                           true,接收到FIN包时不回发FIN包,服务端可继续向客服端发送数据,不会接收数据,必须调用end方法关闭scoket连接
}         
callback(       可选,回调函数,当与客户端连接时所调用的函数
  socket            TCP服务端聆听端口对象(参考:socket)
)        


返回值:server对象,服务器(参考:server)

返回值继承事件接口(参考:EventEmitter)

事件类型(参考:stream

示例


var net = require("net");
var server = net.createServer();  //创建服务器
server.maxConnections = 10;    //设置最大多少客服端连接
server.listen(8080, "localhost", function(){ //监听指定端口、IP
  console.log("服务器已开启");
});

server.on("close", function(){ //服务器调用 close() 方法,关闭
  console.log("服务器关闭");
});

server.on("error", function(e){ //服务器发生错误
  if(e.code == "EADDRINUSE")
    console.log("端口被占用");
});

server.on("connection", function(socket){ //监听客户端连接请求
  socket.on("data", function(data){
    console.log("收到数据:" + data.toString());
    socket.write("我是服务器");  //发送数据
  });

  socket.on("end", function(){ //客户端正常关闭
     server.close();  //关闭服务器
     console.log("客户端连接中断");
  });

  socket.on("error", function(e){ //客户端意外关闭
    socket.destroy(); //销毁发生错误的socket端口
    console.log("通讯中客户端意外断开连接");
  });

  server.getConnections(function(err, count){
    console.log(count);  //客户端连接数量
  });
});