内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

nodejs如何實現(xiàn)TCP服務器端和客戶端聊天功能-創(chuàng)新互聯(lián)

這篇文章主要介紹了nodejs如何實現(xiàn)TCP服務器端和客戶端聊天功能,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)長期為數(shù)千家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為永靖企業(yè)提供專業(yè)的做網(wǎng)站、網(wǎng)站設計,永靖網(wǎng)站改版等技術(shù)服務。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

具體如下:

服務器端

var net = require('net');
var server = net.createServer();
//聚合所有客戶端
var sockets = [];
//接受新的客戶端連接
server.on('connection', function(socket){
  console.log('got a new connection');
  sockets.push(socket);
  //從連接中讀取數(shù)據(jù)
  socket.on('data', function(data){
    console.log('got data:', data);
    //廣播數(shù)據(jù)
    //每當一個已連接的用戶輸入數(shù)據(jù),就將這些數(shù)據(jù)廣播給其他所有已連接的用戶
    sockets.forEach(function(otherSocket){
      if (otherSocket !== socket){
        otherSocket.write(data);
      }
    });
    //刪除被關(guān)閉的連接
    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;  //記錄重新連接的次數(shù)
var maxRetries = 10;  //最多重新連接十次
process.stdin.resume(); //process.stdin流來接受用戶的鍵盤輸入,這個可讀流初始化時處于暫停狀態(tài),調(diào)用流上的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如何實現(xiàn)TCP服務器端和客戶端聊天功能”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設計公司,關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、網(wǎng)站設計器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

文章名稱:nodejs如何實現(xiàn)TCP服務器端和客戶端聊天功能-創(chuàng)新互聯(lián)
路徑分享:http://www.rwnh.cn/article16/dcodgg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、外貿(mào)網(wǎng)站建設、建站公司網(wǎng)站制作網(wǎng)站內(nèi)鏈、云服務器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設網(wǎng)站維護公司
祁门县| 卓资县| 汤原县| 武宣县| 郑州市| 南汇区| 南漳县| 金坛市| 朔州市| 灵川县| 柞水县| 南陵县| 合阳县| 肃宁县| 镇坪县| 恩施市| 隆化县| 永济市| 梁平县| 西峡县| 孟连| 理塘县| 莱州市| 聊城市| 甘谷县| 永春县| 儋州市| 五河县| 喀什市| 贺州市| 四子王旗| 河池市| 达州市| 精河县| 淮南市| 原平市| 景东| 辽阳县| 蒲城县| 虞城县| 贺兰县|