scoketio
服务器代码
let net = require('net');
// 创建服务器
let server = net.createServer(); // 定义一个数组 ,存放每一个连接服务器的客户端用户
let clients = []; server.on('connection',(client)=>{ //参数表示client 表示要连入的客户端对象
// 记录每一个连入的客户端 通过id
client.id = clients.length;
// 将连入的客户端存入数组中
clients.push(client);
// 服务器监听连入客户端 并将每一个客户端传送的数据 广播给其他用户
// 如果某个客户端存在 将客户端传入的数据发送给 其他的客户端
// 设置字符集
client.setEncoding('utf8');
client.on('data',(data)=>{
for(let i = 0;i < clients.length ; i++ ){
if( clients[i] ){
//连入服务器的每个用户
clients[i].write(data) //返回每个客户端的数据内容
}
}
}) // 当前连入的客户端退出
client.on('close',(err)=>{
clients[client.id]=null;
})
client.on('error',(err)=>{
clients[client.id]=null;
}) }) server.listen('8000','127.0.0.1',()=>{
console.log('ok');
})
客户端代码:
let net = require('net');
// 多人通信
let readline = require('readline');
// 创建一个客户端服务
let client = new net.Socket();
client.connect('8000','127.0.0.1');
// 服务器传来数据 这里做监听
client.setEncoding('utf8');
client.on('data',(data)=>{
console.log(data);
});
let rl = readline.createInterface({
input:process.stdin, //输入
output:process.stdout //输出
})
// 监听控制台输入的内容 发送给服务器
rl.on('line',(input)=>{
if(input==='quit'){
rl.close();
client.destroy();
}else{
client.write(input);
}
})
client.write("hello word!");
scoketio的更多相关文章
- flask-SocketIO
本文来源:https://www.jianshu.com/p/d81397edd2b1 websocket是html5中实现了服务端和客户端进行双向文本或二进制数据通信的一种新协议,其实已经低于HTT ...
随机推荐
- IntelliJ IDEA 创建Spring+SpringMVC+hibernate+maven项目
第一步: 新建maven管理的web项目, 具体步骤参考:http://www.cnblogs.com/gczmn/p/8693734.html 第二步: 创建项目结构, 完整项目结构如下: 第三步: ...
- 数据结构【查找】—B树
/*********************讲解后期补充*****************/ 先上代码 #include "000库函数.h" #define MAXSIZE 10 ...
- [福大软工] Z班 团队第一次作业—团队展示成绩公布
[福大软工] Z班 团队第一次作业-团队展示成绩公布 作业地址 http://www.cnblogs.com/easteast/p/7511264.html 作业要求 队员姓名与学号(标记组长),其中 ...
- java继承-super的用法
继承的特点: 1.子类继承了父类的成员 2.具有层次结构 继承的优点: 1.代码重用 2.父类字段和方法可用于子类 3.从抽象到具体形成类的继承体系 4.可以轻松自定义子类 this:当前对象的引用 ...
- Nginx使用教程(二):Nginx配置性能优化之worker配置
配置Nginx workers <br\>NGINX根据指定的配置运行固定数量的工作进程. 这些工作进程负责处理所有处理. 在下面的章节中,我们将调整NGINX worker参数. 这些参 ...
- CAS适用场景
转载:http://www.jb51.net/article/86192.htm 下面小编就为大家带来一篇Java并发编程总结——慎用CAS详解.小编觉得挺不错的, 现在就分享给大家,也给大家做个参考 ...
- UVA11882-Biggest Number(DFS+最优化剪枝)
Problem UVA11882-Biggest Number Accept: 177 Submit: 3117Time Limit: 1000 mSec Memory Limit : 1 ...
- 邮票面值设计 (动态规划+DFS)
题意:https://ac.nowcoder.com/acm/problem/16813 思路: 深度搜索:每一层枚举一个面值,然后通过dp进行检查,并通过已知面值得到最多n张得到的最大表示数. 其实 ...
- 【转】Chrome 控制台新玩法-console显示图片以及为文字加样式
在正常模式下,一般只能向console 控制台输出简单的文字信息.但为了把信息输出得更优雅更便于阅读,除了cosole.log()方法外还可以调用 cosole.warn() 来输出警告信息,在控制台 ...
- 吴恩达课后作业学习2-week3-tensorflow learning-1-基本概念
参考:https://blog.csdn.net/u013733326/article/details/79971488 希望大家直接到上面的网址去查看代码,下面是本人的笔记 到目前为止,我们一直在 ...