//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

参考资料:https://www.cnblogs.com/jkko123/p/10247593.html

网络聊天室---node.js中net网络模块TCP服务端与客户端的使用的更多相关文章

  1. node.js中net网络模块TCP服务端与客户端的使用

    node.js中net模块为我们提供了TCP服务器和客户端通信的各种接口. 一.创建服务器并监听端口 const net = require('net'); //创建一个tcp服务 //参数一表示创建 ...

  2. node.js中ws模块创建服务端和客户端,网页WebSocket客户端

    首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...

  3. [Java聊天室server]实战之五 读写循环(服务端)

    前言 学习不论什么一个稍有难度的技术,要对其有充分理性的分析,之后果断做出决定---->也就是人们常说的"多谋善断":本系列尽管涉及的是socket相关的知识,但学习之前,更 ...

  4. node.js中使用http模块创建服务器和客户端

    node.js中的 http 模块提供了创建服务器和客户端的方法,http 全称是超文本传输协议,基于 tcp 之上,属于应用层协议. 一.创建http服务器 const http = require ...

  5. 网络编程 — Linux TCP服务端和客户端

    1. 服务端 #include <stdlib.h> #include <string.h> #include <errno.h> #include <sig ...

  6. 网络编程 — Windows TCP服务端和客户端

    1. 服务端 #include <iostream> #include <signal.h> #include <forward_list> #include &l ...

  7. node.js中express模块创建服务器和http模块客户端发请求

    首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...

  8. 基于Linux的TCP网络聊天室

    1.实验项目名称:基于Linux的TCP网络聊天室 2.实验目的:通过TCP完成多用户群聊和私聊功能. 3.实验过程: 通过socket建立用户连接并传送用户输入的信息,分别来写客户端和服务器端,利用 ...

  9. php websocket-网页实时聊天之PHP实现websocket(ajax长轮询和websocket都可以时间网络聊天室)

    php websocket-网页实时聊天之PHP实现websocket(ajax长轮询和websocket都可以时间网络聊天室) 一.总结 1.ajax长轮询和websocket都可以时间网络聊天室 ...

随机推荐

  1. 表单生成器(Form Builder)之mongodb表单数据查询——关联查询

    这一篇接着记录一下查询相关的操作.想象一下,如果想要在一张表格中展示某些车辆的耗损和营收情况,我们该怎么处理.车辆.耗损.营收各自存储在一张表中,耗损和营收中冗余了车辆信息……我们便想到了关联查询.m ...

  2. 企业级堡垒机 jumpserver

    环境准备 系统:CentOS 7 IP:192.168.10.101 关闭selinux 和防火墙 # CentOS $ setenforce # 可以设置配置文件永久关闭 $ systemctl s ...

  3. 《推送开发全面盘点当前Android后台保活方案的真实运行效果》

        登录 立即注册 TCP/IP详解 资讯 动态 社区 技术精选 首页   即时通讯网›专项技术区›推送开发全面盘点当前Android后台保活方案的真实运行效果(截止2 ...   帖子 打赏 分 ...

  4. 日记o3o

    12.17 段考超级烂,连sts都没考过,但是今晚来机房,nj发邮件的时候也给我发了,看来是可以继续学竞赛啦,很快心,也挺不开心的,毕竟以后想要跟上文化课就要很努力了,有能力但是得去花时间啊,寒假又要 ...

  5. 【xAsset框架】HFS 轻量级HTTP Server快速入门指南

    一.引子 最近马三有幸参与开发了一个简易轻量的Unity资源管理框架 xAsset ,xasset 提供了一种使用资源路径的简单的方式来加载资源,简化了Unity项目资源打包,更新,加载,和回收的作业 ...

  6. linux配置LAMP(CentOS7.4 Apache2.4 PHP5.6)

    1.安装Apache 这个就不手动安装了,直接上脚本执行 bash apache.sh 以下为脚本的内容: #!/bin/bashversion=`lsb_release -a|grep Releas ...

  7. pandas.apply()函数

    1.介绍 apply函数是pandas里面所有函数中自由度最高的函数.该函数如下: DataFrame.apply(func, axis=0, broadcast=False, raw=False, ...

  8. Python 爬虫从入门到进阶之路(二)

    上一篇文章我们对爬虫有了一个初步认识,本篇文章我们开始学习 Python 爬虫实例. 在 Python 中有很多库可以用来抓取网页,其中内置了 urllib 模块,该模块就能实现我们基本的网页爬取. ...

  9. 基于SpringCloud实现Shard-Jdbc的分库分表模式,数据库扩容方案

    本文源码:GitHub·点这里 || GitEE·点这里 一.项目结构 1.工程结构 2.模块命名 shard-common-entity: 公共代码块 shard-open-inte: 开放接口管理 ...

  10. NuGet Install-Package 命令

    例: Install-Package CefSharp.Wpf -Version 73.1.130 Install-Package CefSharp.Common -Version 73.1.130 ...