nodejs简单实现TCP服务器端和客户端的聊天功能示例

本文实例讲述了nodejs简单实现TCP服务器端和客户端的聊天功能分享给大家供大家参考,具体如下:

服务器端

rush:js;"> var net = require('net'); var server = net.createServer(); //聚合所有客户端 var sockets = []; //接受新的客户端连接 server.on('connection',function(socket){ console.log('got a new connection'); sockets.push(socket); //从连接中读取数据 socket.on('data',function(data){ console.log('got data:',data); //广播数据 //每当一个已连接的用户输入数据,就将这些数据广播给其他所有已连接的用户 sockets.forEach(function(otherSocket){ if (otherSocket !== socket){ otherSocket.write(data); } }); //删除关闭的连接 socket.on('close',function(){ console.log('connection closed'); var index = sockets.indexOf(socket); sockets.splice(index,1); }); }); }); server.on('error',function(err){ console.log('Server error:',err.message); }); server.on('close',function(){ console.log('Server closed'); }); server.listen(4000);

客户端

= maxRetries) { throw new Error('Max retries have been exceeded,I give up.'); } retriedTimes +=1; setTimeout(connect,retryTimeout); } conn = net.createConnection(port); conn.on('connect',function() { retriedTimes = 0; console.log('connect to server'); }); conn.on('error',function(err) { console.log('Error in connection:',err); }); conn.on('close',function() { if(! quitting) { console.log('connection got closed,will try to reconnect'); reconnect(); } }); //打印 conn.pipe(process.stdout,{end: false}); })();

希望本文所述对大家nodejs程序设计有所帮助。

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...