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