参数说明
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); //客户端连接数量
});
});