nodejssocket文件传输(node+socket实现简易聊天室功能)
类别:编程学习 浏览量:1316
时间:2021-10-10 00:22:10 nodejssocket文件传输
node+socket实现简易聊天室功能本文实例为大家分享了node+socket实现简易聊天室的具体代码,供大家参考,具体内容如下
服务端
const net = require('net') const server = net.createServer() //用户列表 let clients = [] //监听连接 server.on('connection',client=>{ client.on('data',(chunk)=>{ let data = chunk.toString() if(data.match(/login:(.*)/)){ let name = data.match(/login:(.*)/)[1] client.name = name clients.push(client) console.log(`用户${name}上线`) }else{ for (const client of clients) { if(client.name!==JSON.parse(data).name){ client.write(data) } } } }) client.on('close',()=>{ console.log(`用户${client.name}下线`) }) client.on('error',()=>{ console.log(`用户${client.name}发生错误`) }) }) server.on('error',(err)=>{ console.log('服务器错误',err) }) server.on('close',()=>{ console.log('服务器关闭') }) server.listen(9527,()=>{ console.log("服务器开启") })
客户端
const net = require('net') const readline = require('readline') //读取输入的信息 const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); //名字 const name = process.argv[2] //连接服务器 const client = net.createConnection({port:9527},()=>{ console.log(name+'连接到服务器'); client.write(`login:${name}`) client.name = name //开始发送信息 sendMsg(client) }) client.on('data', (chunk) => { let data = JSON.parse(chunk.toString()) if(data){ console.log(`[${data.name}] : ${data.msg}`) } }); client.on('end', () => { console.log('已从服务器断开'); }); client.on('error', () => { console.log('服务器错误'); }); //一直递归输出 function sendMsg(client){ rl.question('',(line)=>{ client.write(JSON.stri.jpg" alt="nodejssocket文件传输(node+socket实现简易聊天室功能)" border="0" />
演示
服务端
客户端1
客户端2
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
您可能感兴趣
- nodejs如何识别接口(Node实现搜索框进行模糊查询)
- nodejs的广播机制(node.js如何自定义实现一个EventEmitter)
- nodejs架构解析(详解NodeJS模块化)
- node.js缓存区(如何利用node实现静态文件缓存详解)
- linux用nvm安装nodejs(nodejs管理工具nvm安装过程详解)
- docker怎么部署node-exporter(Docker搭建部署Node项目的方法步骤)
- node.js怎么使用import(Node.js断点续传的实现)
- linux更改inode(详解Linux索引节点inode)
- docker node 分阶段构建(Docker安装、创建镜像、加载并运行NodeJS程序的详细过程)
- html元素和属性的区别(HTML5 HTMLCollection和NodeList的区别详解)
- nodejsweb服务(Nodejs实现内网穿透服务)
- pythonweb和nodejs(Node与Python 双向通信的实现代码)
- nodejs 内部模块代码(详解Node.js如何处理ES6模块)
- nodejs json文件读写(nodejs将JSON字符串转化为JSON对象报错的解决)
- node中如何用import(分析node事件循环和消息队列)
- nodejs怎么查看对象的全部属性(浅谈nodejs中创建cluster)
- 《九牛之人降魔传》开机 演员祁高坤化身九牛之人除魔卫道(九牛之人降魔传开机)
- 王铲铲的致富之路无限金币卡法攻略教学(王铲铲的致富之路无限金币卡法攻略教学)
- 文明6金币太少怎么办 文明6无限刷钱教程(文明6金币太少怎么办)
- 开国中将,王牌军63军首任政委,两个连襟一个上将一个少将传为佳话(王牌军63军首任政委)
- 臭名昭著的731部队最高负责人 石井四郎(臭名昭著的731部队最高负责人)
- 王牌部队,你看的剧情我看的时尚(你看的剧情我看的时尚)
热门推荐
- python正则表达式处理教学(使用Python正则表达式操作文本数据的方法)
- mysql中innodb四种事务级别(MySQL InnoDB 锁的相关总结)
- 如何使用sqlserver建立数据表(SqlServer编写数据库表的操作方式建库、建表、修改语句)
- mysql类型转换函数推荐(mysql 数据类型转换的实现)
- VS中Code Snippet 代码段
- react和antd管理系统(手把手教你从零开始react+antd搭建项目)
- canvas里面图片如何获取(canvas生成带二维码海报的踩坑记录)
- C#中Obsolete
- docker 查看容器状态命令(Docker 使用 Supervisor 来管理进程操作)
- vue离线地图有哪些(vue 集成腾讯地图实现api附DEMO)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9