国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

nodejs簡單實現TCP服務器端和客戶端的聊天功能示例

來源:懂視網 責編:小采 時間:2020-11-27 22:22:08
文檔

nodejs簡單實現TCP服務器端和客戶端的聊天功能示例

nodejs簡單實現TCP服務器端和客戶端的聊天功能示例:本文實例講述了nodejs簡單實現TCP服務器端和客戶端的聊天功能。分享給大家供大家參考,具體如下: 服務器端 var net = require('net'); var server = net.createServer(); //聚合所有客戶端 var sockets = []; //接受新的客戶端連接
推薦度:
導讀nodejs簡單實現TCP服務器端和客戶端的聊天功能示例:本文實例講述了nodejs簡單實現TCP服務器端和客戶端的聊天功能。分享給大家供大家參考,具體如下: 服務器端 var net = require('net'); var server = net.createServer(); //聚合所有客戶端 var sockets = []; //接受新的客戶端連接

本文實例講述了nodejs簡單實現TCP服務器端和客戶端的聊天功能。分享給大家供大家參考,具體如下:

服務器端

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);

客戶端

var net = require('net');
var port = 4000;
var quitting = false;
var conn;
var retryTimeout = 3000; //三秒,定義三秒后重新連接
var retriedTimes = 0; //記錄重新連接的次數
var maxRetries = 10; //最多重新連接十次
process.stdin.resume(); //process.stdin流來接受用戶的鍵盤輸入,這個可讀流初始化時處于暫停狀態,調用流上的resume()方法來恢復流
process.stdin.on('data', function(data){
 if (data.toString().trim().toLowerCase() === 'quit'){
 quitting = true;
 console.log('quitting');
 conn.end();
 process.stdin.pause();
 } else {
 conn.write(data);
 }
});
//連接時設置最多連接十次,并且開啟定時器三秒后再連接
(function connect() {
 function reconnect() {
 if (retriedTimes >= 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程序設計有所幫助。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

nodejs簡單實現TCP服務器端和客戶端的聊天功能示例

nodejs簡單實現TCP服務器端和客戶端的聊天功能示例:本文實例講述了nodejs簡單實現TCP服務器端和客戶端的聊天功能。分享給大家供大家參考,具體如下: 服務器端 var net = require('net'); var server = net.createServer(); //聚合所有客戶端 var sockets = []; //接受新的客戶端連接
推薦度:
標簽: 簡單 實現 nod
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 99热成人精品国产免国语的 | 91麻豆网| 在线亚洲欧国产精品专区 | 精品一区二区三区在线观看 | 国产午夜免费视频 | 九九精品99久久久香蕉 | 欧美日韩电影在线 | 欧美日韩国产va另类试看 | 国产97在线看 | 成人午夜精品久久久久久久小说 | 欧美高清视频一区 | 日韩a无v码在线播放免费 | 欧美视频亚洲视频 | 91久久精品国产免费一区 | 欧美精品免费在线观看 | 国产高清视频在线 | 亚洲欧美日韩精品高清 | 福利三区| 国产成人精品一区二区视频 | 97在线亚洲 | 欧美精品第二页 | 亚洲国产日韩欧美一区二区三区 | 久久精品视频一区二区三区 | 色翁荡息又大又硬又粗又爽 | 国产亚洲人成a在线v网站 | 精品国产一区二区三区在线观看 | 国产欧美日韩在线播放 | 伊人99热| 亚洲欧美激情精品一区二区 | 国产全黄a一级毛片视频 | 国产在线精品一区二区 | 亚洲精品在线免费看 | 亚洲va欧美ⅴa国产va影院 | 国产欧美一区二区精品性色99 | 国产精选在线 | 国产激情视频在线 | 欧美日韩精品一区二区三区四区 | 日韩欧美小视频 | 久久久无码精品亚洲日韩按摩 | 亚洲第一页在线视频 | 国产日韩第一页 |