Node教学--02 TCP服务器(小聊天工具)
来源:互联网 发布:oa办公自动化软件 编辑:程序博客网 时间:2024/05/01 07:43
上一节中介绍了使用http模块。这一节我们使用net模块,这个模块包含了Node需要的所有TCP功能。
先给出个简单版的模块,与服务器连接之后,服务器将返回Hi,Bye ,然后断开连接
var net = require("net");var chatServer = net.createServer();chatServer.on("connection",function(client){client.write("Hi!\n");client.write("Bye!\n");client.end();});chatServer.listen(9000);
/*获取net模块*/var net = require("net");/*创建服务器*/var chatServer = net.createServer();/*存储已连接的客户端*/var clientList = [];/*连接之后调用事件*/chatServer.on("connection",function(client){/*取客户端的地址以及端口作为客户端名称*/client.name = client.remoteAddress + ':' + client.remotePort;/*客户端弹出接待语*/client.write('Hi'+client.name+"\n");/*服务器端显示新加入的客户端*/console.log(client.name+"joined");/*将新客户端加入已连接数组*/clientList.push(client);/*客户端接收数据之后,进行信息的群发*/client.on("data",function(data){broadcast(data,client);})/*客户端退出操作*/client.on("end",function(){console.log(client.name+"quit");/*从当前的客户端开始截取一个单位,并替换为xx,如果没有写,就将这项删除,节点上的销毁*/clientList.splice(clientList.indexOf(client),1);})/*连接错误,服务器端进行错误提示*/client.on("error",function(e){console.log(e);})});/*信息群发函数*/function broadcast(message,client){/*无效连接列表*/var cleanup = [];/*遍历所有客户端*/for(var i =0;i<clientList.length;i++){/*对非发送方客户端进行操作*/if(client!== clientList[i]){/*判断该客户端是否可写*/if(clientList[i].writable){/*发送给其他客户端信息*/clientList[i].write(message);}else{/*将该客户端推入清除列表*/cleanup.push(clientList[i]);/*销毁该客户端,实际上的销毁*/clientList[i].destroy();}}}}/*启动端口监听*/chatServer.listen(9000);由于涉及到信息的交互 所以这里我们需要用telnet,linux可以直接用,windows的话默认是关闭的,大家可以百度下 如何开启telnet 非常简单
成功之后 可以开启多个telnet 进行单机版的多客户端沟通
下面给出源码链接
2 0
- Node教学--02 TCP服务器(小聊天工具)
- java 简易聊天工具(TCP)
- 聊天工具服务器
- 多线程控制台TCP聊天工具
- tcp 聊天工具客户端
- Node.js小Http服务器
- JAVA进阶案例 TCP编程之网络聊天工具(服务端)
- JAVA进阶案例 TCP编程之网络聊天工具(客户端)
- 聊天工具小程序
- 基于Node.js搭建TCP聊天服务器
- node.js学习之创建TCP服务器
- Node.js —— 创建TCP服务器
- 基于TCP的QQ聊天工具
- Node.js教学视频
- Node.js-创建Web服务器和TCP服务器
- 基于node-websocket-server的简易聊天工具
- 基于TCP的多人聊天工具
- java小型聊天工具02
- Tutum公司简介
- Middle-题目73:55. Jump Game
- Web Service
- 根据ShareSDK实现分享功能组件化
- 第16课:Spark Streaming源码解读之数据清理内幕彻底解密
- Node教学--02 TCP服务器(小聊天工具)
- SpringMVC之数据参数绑定
- java设计模式5 外观设计模式
- 标日初上-第5課
- Android实现下载图片并保存到SD卡中
- 超多遊戲資源 包山包海 不包生子
- NSString新用法 字符串_过滤处理NSCharacterSet 与invertedSet
- 栈空间和堆空间[转]
- C++连接数据库