在Node.js中可以很方便创建一个TCP服务器,只需要调用net模块中的createServer方法
var server = net.createServer([options], [connectListener])
connectListener参数用于指定当客户端与服务器建立连接时索要调用的回调函数
function(socket){
// ...
}
createServer方法返回被创建的TCP服务器,当客户端与服务器建立连接时,触发connection事件,我们也可以不在createServer方法中使用connectListener参数,而是通过对connection事件进行监听,参数值为该TCP服务器监听的socket端口对象。
server.on('connection', function(socket){
// ...
})
在创建了TCP服务器之后,可以使用listen方法通知服务器开始监听客户端连接。
server.listen(port, [host], [backlog], [callback]);
下面例子中,我们使用createServer方法建立一个TCP服务器,并且使用listen方法指定服务器监听地址为本地主机localhost,端口号为8431
var net = require('net');
var server = net.createServer(function(socket){
console.log('客户端与服务器端连接已建立');
})
server.listen(8431, 'localhost', function(){
console.log('服务器开始监听');
address = server.address();
// 服务器监听地址
console.log(address);
})
可以使用TCP服务器的getConnections 方法查看当前与TCP服务器建立连接的客户端连接数量。
var net = require('net');
var server = net.createServer(function(socket){
server.getConnections(function(err, count){
// 当前连接数
console.log(count);
// 最大连接数
server.maxConnections = 2;
})
})
在设置最大连接数之后,当前客户端与服务器连接等于2时,不再接受新的客户端连接请求。
socket端口对象
var net = require('net');
var server = net.createServer();
server.on('connection', function(socket){
// 端口对象所属地址
address = socket.address();
})
server.listen(8431, 'localhost');
socket端口对象可以用来读取客户端发送的流数据,每次接收到客户端发送的流数据时触发data事件
var net = require('net');
var server = net.createServer();
server.on('connection', function(socket){
socket.on('data', function(data){
console.log(data);
})
})
server.listen(8431, 'localhost');
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/13489.html