深入深入Node TCP模块的理解模块的理解
1. TCP
在Node.js中,提供了net模块用来实现TCP服务器和客户端的通信。
1.1 TCP服务器服务器
net.createServer([options][, connectionListener])
options.allowHalfOpen 是否允许单方面连接,默认值为false
connectionListener参数用于指定当客户端与服务器建立连接时所要调用的回调函数,回调中有一个参数socket,指的是TCP服
务器监听的socket端口对象
也可以通过监听connection事件的方式来指定监听函数
server.on('connection',function(socket){});
1.1.1 启动启动TCP服务器服务器
可以使用listen方法通知服务器开始监听客户端的连接
server.listen(port,[host],[backlog],[callback])
port 必须指定的端口号
host 指定需要监听的IP地址或主机名,如果省略的话服务器将监听来自于任何客户端的连接
backlog指定位于等待队列中的客户端连接的最大数量,默认值为511
server.on('listening',function(){});
1.1.2 使用使用TCP服务器服务器
let net = require('net');
let server = net.createServer(function(socket){
console.log('客户端已连接');
});
server.listen(8080,'localhost',function(){
console.log('服务器开始监听');
});
1.1.3 address
server.address()
port 端口号
address TCP服务器监听的地址
family 协议的版本
1.1.4 getConnections
查看当前与TCP服务器建立连接的客户端的连接数量以及设置最大连接数量
server.getConnections(callback);
server.maxConnections = 2;
1.1.5 close
使用close方法可以显式拒绝所有的客户端的连接请求,当所有已连接的客户端关闭后服务器会自动关闭,并触发服务器的close
事件。
server.close();
server.on('close',callback);
1.2 socket
1.2.1 address
net.Socket代表一个socket端口对象,它是一个可读可写流。