标签:关闭 client int lin 令行 内容 连接服务器 lis 模块
---恢复内容开始---
特性:持久链接,双向通信
首先要有服务器与客户端两端
const net = require("net");
const clients = [];
const server = net.createServer();server.on("connection",(client) => {
//当一个用户连接进来是,第一步先给用户一个id
//把用户存入所有用户的这个数组中
client.id = clients.length;
clients.push(client);
//设置编码集合
client.setEncoding("utf8");
//监听用户(客户端)是否给服武器发了数据
//如果发送了数据
//服务器把数据转发给其他所有用户
client.on("data",(data) => {
for(var i=0; i<clients.length; i++) {
if(clients[i]){
clients[i].write(data)
}
}
})
//监听用户是否退出群聊
//如果退出,就移除用户
client.on("close",() =>{
clients[client.id] = null;
})
//监听用户是否连接是否出错
//如果出错,就移除用户
client.on("error",() =>{
clients[client.id] = null;
})
})
server.listen("9000","127.0.0.1");
const net = require("net");
const readline = require("readline");
//创建客户端
const client = new net.Socket();
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
//连接服务器
client.connect("9000","127.0.0.1");
//服务器传来数据,做监听
client.setEncoding("utf8");
client.on("data", (data) => {
console.log(data);
})
//client.write("ma zheng");
//监听控制台输入的内容,发送给服务器
rl.on("line",(input) => {
if (input === "quit") {
rl.close(); //聊天框关闭
client.destroy(); //如果输入quit,对话终止
}else{
client.write(input);
}
})
---恢复内容结束---
标签:关闭 client int lin 令行 内容 连接服务器 lis 模块
原文地址:http://www.cnblogs.com/0402jing/p/7705399.html