网络聊天室---node.js中net网络模块TCP服务端与客户端的使用
2023-09-27 14:26:14 时间
//1.简单创建 net服务器 // const net = require("net"); // const server = net.createServer((c)=>{ // //connection 监听器 // console.log("客户端已连接"); // c.on("end",()=>{ // console.log("客户端已断开连接"); // }) // c.write('你好\r\n'); // c.pipe(c); // }) // server.on('error',(err)=>{ // throw err // }) // server.listen(8000,()=>{ // console.log("服务器已启动") // }) //2.应用套字节对象 // var server = require('net').createServer((socket) => { // console.log('new connection'); // socket.setEncoding("UTF8"); // socket.on('data', (data) => { // console.log('got:', data.toString()); // if (data.trim().toLowerCase() === 'quit') { // socket.write('Bye!'); // return socket.end(); // } else { // socket.write(data + '----我已处理过的数据!\r\n') // } // }) // socket.on("end", () => { // console.log("客户端已断开连接"); // }) // }).listen(3000) //3.从套字节输出到文件 // var ws = require("fs").createWriteStream('output.txt'); // require('net').createServer(function(socket){ // socket.pipe(ws); // }).listen(4000) //4.从文件通过套字节输出到客户端 // require("net").createServer(function(socket){ // var rs = require('fs').createReadStream('output.txt'); // rs.pipe(socket) // // rs.pipe(socket,{end:false}) // }).listen(4000) //5.TCP聊天服务器 var net = require("net"); var server = net.createServer(); var sockets = []; //1.保存所有连接 server.on('error',function(err){ throw err }) //1.接受链接 server.on('connection',function(socket){ console.log('got a new connection'); sockets.push(socket);//2.保存 //2.从连接中读取数据 socket.setEncoding("UTF8"); socket.on('data',function(data){ console.log('got data:',data) //广播数据 将数据广播给所有的连接 sockets.forEach(function(otherSocket){ if(otherSocket !== socket){ otherSocket.write(data); } }) }) }) //3.连接被关闭时,将他删除 server.on('close',function(){ console.log('Server close'); var index = sockets.indexOf(socket); sockets.splice(index,1) }) server.listen('4000');
启动命令:telnet 127.0.0.1 4000
相关文章
- .NET程序员也学Node.js——初识Node.js
- 26、ASP.NET MVC入门到精通——后台管理区域及分离、Js压缩、css、jquery扩展
- Unity puerts js 和 c# 互相调用
- vue.js v-show的使用和v-if的区别
- C# 封装miniblink 使用HTML/CSS/JS来构建.Net 应用程序界面和简易浏览器
- JS微信分享不好写?来封装一下
- kettle学习笔记(十)——数据检验、统计、分区与JS脚本
- JS:函数多个参数默认值指定
- js 播放声音文件
- js--继承
- node.js中session的简单使用
- .NET Core(C#)使用AngleSharp下载网页源码及资源文件(html,css,js,jpg等图片)
- .NET(C#) CefSharp 执行JS(JavaScript)代码及资源清理方法
- .NET Selenium WebDriver操作调用浏览器后台执行Js(JavaScript)代码
- ECharts.js 简单示例
- Vue.js 系列教程 4:Vuex
- js数组操作--使用迭代方法替代for循环