持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第10天,点击查看活动详情
构建TCP服务器
首先我们需要知道网络基础知识--OSI网络模型,它将网络通信功能分为了7层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。TCP协议就是位于传输层的协议。
使用Node.js构建TCP服务器
Node.js在创建一个TCP服务器的时候使用的是net依赖。首先就是需要使用require来加载依赖。
var net = require('net');
其次就是使用createServer方法创建TCP服务器
var server =net.createServer(function(socket){
console.log("创建TCP服务器连接");
});
监听客户端的连接
我们使用listen的方法来监听客户的连接并设置监听的端口。
server.listen(8080,function(){
console.log("8080端口监听");
})
当我们运行代码的时候,就能看到我们在listen执行的回调函数中打印的:"8080端口监听"。
查看服务器监听的地址
创建完TCP服务器之后,我们就可以使用server.address()方法来查看这个TCP服务器监听的地址,并且它会返回一个JSON对象。
//获取地址信息
server.address();
//获取地址端口
console.log(address.port);
console.log(address.address);
连接服务器的客户端数量
我们可以使用server.getConnections()方法获取连接服务器的客户端数量。这方法我们使用异步。
//设置最大连接数,当客户端连接服务器数量10的时候就无法连接服务器了
server.maxConnections=10;
server.getConnections(function(err,count){
console.log("当前客户端数量"+count);
});
注:此方法放入创建服务器的方法体代码中。
获取客户端发送的数据
socket对象可以用来获取客户端发送的数据流,每次接收到数据的时候触发data时间通过监听这个事件就能获取客户端发送的数据。
//监听data事件
socket.on('data',function(data){
console.log(data.toString());
});
发送数据给客户端
利用socket.write()可以在服务器中发送数据给客户端
var massage="123456789"
socket.write(message,function(){
var writeSize=socket.bytesWritten;
console.log(message);
console.log(writeSize);
});