在Node中,专门提供了net模块来实现TCP服务器与TCP客户端之间通信。
1.创建TCP服务器
var net=require('net'); //引入net模块
var server=net.createServer(); //创建TCP服务
server.listen(8080,localhost,function(){ //创建监听
console.log('监听8080端口')});
测试服务器:telnet localhost 8080
获取连接数:
server.getConnections(function (err,count) {
console.log('当前存在%d个玩家',count);
})
2.关闭服务器
server.on('close',function(){
console.log('关闭连接')
});
关闭服务器之后,会拒绝新的用户访问,但是不会断开正在连接的用户,当用户退出后,全部关闭
数据接收
net.socket
代表一个socket
对象,当客户端与服务器建立连接的时候作为参数会被自动创建的net.socket
对象
socket端口对象可用来来查看端口的信息,也可以用来读取客户端发送的数据流
server.on('connection',function(socket){
socket.on('data',function(data){ //监听数据
console.log(data) //输出数据
})
});
此时读取到的data是以Buffer对象获取的,输出会是二进制,这里可以使用setEcoding方法来设置编码方式:
socket.setEcoding('utf-8');
或者是将其转换成字符串
server.on('connection',function(socket){
socket.on('data',function(data){
console.log(data.toString()) //将数据转换成字符串
})
});
当客户端被关闭之后,socket就会被结束
socket.on('end',function(){
console.log('客户端被关闭')
})
如果电脑的telnet服务没开启,可以通过控制面板来打开windows的相关功能,把telnet的服务器与客户端都勾选,不同版本电脑请自行百度