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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
您可能感兴趣
- node.js怎么使用import(Node.js断点续传的实现)
- nodejs启动web服务器(使用NODE.JS创建一个WEBSERVER服务器的步骤)
- nodejsweb服务(Nodejs实现内网穿透服务)
- nodejs游戏服务端框架(如何写Node.JS版本小游戏)
- nodejs数据采集(nodejs获取表单数据的三种方法实例)
- nodejs的广播机制(node.js如何自定义实现一个EventEmitter)
- nodejs json文件读写(nodejs将JSON字符串转化为JSON对象报错的解决)
- nodejs请求页面(node.js+postman实现模拟HTTP服务器与客户端交互)
- node.js缓存区(如何利用node实现静态文件缓存详解)
- html5本地存储功能(利用Node实现HTML5离线存储的方法)
- nodejs怎么查看对象的全部属性(浅谈nodejs中创建cluster)
- nodejs部署上传文件(node.js使用express-fileupload中间件实现文件上传)
- node中如何用import(分析node事件循环和消息队列)
- pythonweb和nodejs(Node与Python 双向通信的实现代码)
- nodejs爬虫(node.js做一个简单的爬虫案例教程)
- nodejs架构解析(详解NodeJS模块化)
- 大果肉搭配薄瓜皮, 绿宝 脆甜爽口,不愧是甜瓜中的 佼佼者(大果肉搭配薄瓜皮)
- 河南尉氏县因地制宜发展果蔬种植 水坡镇绿宝甜瓜变 金瓜(河南尉氏县因地制宜发展果蔬种植)
- 谢广坤,你这么欺负谢腾飞,良心不会痛吗(你这么欺负谢腾飞)
- 乡村爱情15 宋晓峰怀疑自己孩子,腾飞与姜奶奶亲子鉴定出结果(宋晓峰怀疑自己孩子)
- 《乡村爱情13》开播,新版刘能以假乱真,编剧思维进入瓶颈(新版刘能以假乱真)
- 当年的 白洋淀战神 练肌肉 嘎子哥也成为行走的荷尔蒙(当年的白洋淀战神)
热门推荐
- mysql存储过程和函数(MySQL存储过程的查询命令介绍)
- mysql8.0.19.0正确安装图解(MySQL 8.0.23 主要更新一览新特征解读)
- 微信推送功能大全(微信推送功能实现方式图文详解)
- python pandas dataframe 查询(Python实现从SQL型数据库读写dataframe型数据的方法基于pandas)
- 网页按钮设计的几个建议
- tomcatxml文件放在哪(Tomcat中修改server.xml和content.xml后自动还原问题解决)
- mysqlcount使用技巧(MySQL巧用sum、case和when优化统计查询)
- linux中输出和追加命令(linux驱动开发中常用函数copy_from_user open read write详解)
- serv-u服务器安装(Serv-U搭建FTP服务器教程之建立登录用户和密码)
- php加密平台(PHP7实现和CryptoJS的AES加密方式互通示例AES-128-ECB加密)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9