server.js
var net = require('net');
var clientList = []; var HOST = '127.0.0.1';
var PORT = 6969; var server = net.createServer(); server.on('connection', function(client) {
console.log('CONNECTED: ' + client.remoteAddress +':'+ client.remotePort);
client.name = client.remoteAddress + ':' + client.remotePort;
console.log(client);
client.write('Hi ' + client.name + '!\n');
clientList.push(client);
client.on('data', function(data) {
broadcast(data, client);
});
client.on('close', function() {
clientList.splice(clientList.indexOf(client), 1);
}); client.on('error', function(e) {
console.log(e.errno);
}); }); function broadcast(message, client) {
var cleanup = [];
for(var i=0;i<clientList.length;i+=1) {
if(client !== clientList[i]) {
if(clientList[i].writable){
clientList[i].write(client.name + " says " + message);
}else{
cleanup.push(clientList[i]);
clientList[i].destroy();
console.log(cleanup);
}
}
}
for(i=0;i<cleanup.length;i+=1) {
clientList.splice(clientList.indexOf(cleanup[i]), 1)
}
} server.listen(PORT, HOST);
console.log('Server listening on ' + HOST + ':' + PORT);

client.js

var net = require('net');

var HOST = '127.0.0.1';
var PORT = 6969; var client = new net.Socket();
client.connect(PORT, HOST, function() { console.log('CONNECTED TO: ' + HOST + ':' + PORT);
// 建立连接后立即向服务器发送数据,服务器将收到这些数据
client.write('I am Chuck Norris!'); }); // 为客户端添加“data”事件处理函数
// data是服务器发回的数据
client.on('data', function(data) { console.log('DATA: ' + data);
// 完全关闭连接
//client.destroy(); }); // 为客户端添加“close”事件处理函数
client.on('close', function() {
console.log('Connection closed');
});

nodejs socket的更多相关文章

  1. nodejs + socket.io + redis 新手上路

    最近要更新网站架构了,决定转入 nodejs + socket.io + redis 方式. 战斗刚开始: 网上的文章太松散,我根据各个网友的分享进行整理 ,让大家可以方便上手. 进入node.js之 ...

  2. NodeJS + Socket.io搭建聊天服务器

    第一步:安装node git clone https://github.com/joyent/node.git cd node git checkout v0.10.33-release ./conf ...

  3. nodejs socket server 强制关闭客户端连接

    nodejs socket server 强制关闭客户端连接: client.destroy()

  4. NodeJS + Socket.io聊天服务器连接数达到1024后就连不上了

    如果是亚马逊的Engine Yard服务器,解决办法为: 1.查看端口占用情况,找到nodejs进程号,例如我这里是8000端口 lsof -i:8000  找到pid 例如为 8213 2.设置no ...

  5. nodejs+socket.io即时聊天实例

    在这之前你应该先安装好 Node.js,安装过程不再讲解 首先在你的电脑上创建一个新目录,姑且命名为 chat,然后在该目录创建两个文件,分别是 app.js 和 index.html. app.js ...

  6. nodeJs+socket.io

    1.先安装npm和node 2.安装socket.io npm install socket.io 3.html <!DOCTYPE html> <html lang="e ...

  7. nodejs socket.io初探

    1.安装socket.io npm install socket.io 2.创建服务端代码server.js var app = require('http').createServer(handle ...

  8. nodeJS+socket.io传递消息

    服务器端 安装express,socket.io npm install express --save-dev npm install socket.io --save app.js const ex ...

  9. 基于NodeJS的秘室聊天室

    借着放假期间将NodeJS重新回顾了一下并玩了一下sketch来进行设计界面,很不错.(注:代码整理后会放到github上,请关注.) 本次聊天室我给它定义了一个名称叫“秘密聊天室”. 需求: 技术选 ...

随机推荐

  1. css3,background-clip/background-origin的使用场景,通俗讲解

    先不说background-clip/background-origin的用法,我们先来聊聊css背景方面的知识. <!DOCTYPE html> <html lang=" ...

  2. ionic 添加地图定位功能

    由于项目需求,需要一个定位功能,通过google或百度,搜到一个cordova-plugin-geolocation的插件,在ios上可以用,但是在android就呵呵了,原因就不说了,大家都知道.所 ...

  3. ionic 实现自动升级APP

    最近做移动商城开发,需要一个自动升级APP的功能,在网上搜罗很多,发现有的是下载APK,有的在我这服务无法实现,由于时间原因,都被PASS了,最后找到了一个热更新插件,经过半天的调试,可以使用,很欣喜 ...

  4. Hadoop入门进阶课程2--Hadoop2.X 64位编译

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  5. 为什么NOLOCK查询提示是个不明智的想法

    一些人总当NOLOCK查询提示是SQL Server里的加速器,因为它避免了大量的死锁情景.在这篇文章里,我想向你展示下为什么NOLOCK查询提示是个不好的想法. 脏读(Dirty Reads) NO ...

  6. sprint3(第二天)

    今天完成的任务有统计用户,全局管理员可以对员工或者用户设置权限. 燃尽图

  7. 基于Lumisoft.NET组件的SMTP账号登陆检测

    在邮件处理的方面,Lumisoft.NET可以说是非常不错的一个选择,我在前面几篇文章中都介绍过这个组件. 基于Lumisoft.NET组件开发碰到乱码等一些问题的解决 基于Lumisoft.NET组 ...

  8. [新手学Java]使用内省(Introspector)操作JavaBean属性

    获取类bean中的所有属性: @Test //获取类bean中的所有属性 public void test1() throws Exception{ BeanInfo info = Introspec ...

  9. Java的final关键字详解

    Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...

  10. Windows nexus 启动失败

    现象: nexus Windows系统服务安装成功,但启动失败 D:\nexus-2.10.0-02-bundle\nexus-2.10.0-02\bin>nexus.bat Usage: ne ...