欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js檢測端口(port)是否被占用的簡單示例

 更新時間:2016年09月29日 10:11:24   作者:小弟調(diào)調(diào)™  
大家有沒有遇到過在開啟本地服務時,有這么一種情況:當前端口已經(jīng)被另一個項目使用了,導致服務開啟失敗。那么接下來,我們通過簡簡單單的示例代碼來檢測端口是否已經(jīng)被占用。有需要的朋友們可以參考借鑒。

前言

在網(wǎng)絡技術中,端口(Port)大致有兩種意思:一是物理意義上的端口,比如,ADSL Modem、集線器、交換機、路由器用于連接其他網(wǎng)絡設備的接口,如RJ-45端口、SC端口等等。二是邏輯意義上的端口,一般是指TCP/IP協(xié)議中的 端口,端口號的范圍從0到65535,比如用于瀏覽網(wǎng)頁服務。這篇文章的目的是為了解決ssr工具起多個服務的時候端口被占用的情況,下面跟大家分享研究的代碼片段,有需要的可以參考借鑒。

示例代碼

// 檢測port是否被占用
function probe(port, callback) {

  var server = net.createServer().listen(port)

  var calledOnce = false

  var timeoutRef = setTimeout(function () {
    calledOnce = true
    callback(false,port)
  }, 2000)

  timeoutRef.unref()

  var connected = false

  server.on('listening', function() {
    clearTimeout(timeoutRef)

    if (server)
      server.close()

    if (!calledOnce) {
      calledOnce = true
      callback(true,port)
    }
  })

  server.on('error', function(err) {
    clearTimeout(timeoutRef)

    var result = true
    if (err.code === 'EADDRINUSE')
      result = false

    if (!calledOnce) {
      calledOnce = true
      callback(result,port)
    }
  })
}

function server(_port){
  var pt = _port || __port;
  probe(pt,function(bl,_pt){
    // 端口被占用 bl 返回false
    // _pt:傳入的端口號
    if(bl === true){
      // ssr(_pt)
      server = http.createServer(connListener);
      server = server.listen(parseInt(_pt, 10));
      console.log("\n Static file server running at" + "\n\n=> http://localhost:" + _pt + '\n');
    }else{
      server(_pt+1)
    }
  })
}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望能對大家的學習或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

相關文章

  • node文件資源管理器讀取視頻信息從零實現(xiàn)

    node文件資源管理器讀取視頻信息從零實現(xiàn)

    這篇文章主要為大家介紹了node文件資源管理器讀取視頻信息從零實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • nodejs簡單實現(xiàn)中英文翻譯

    nodejs簡單實現(xiàn)中英文翻譯

    這篇文章主要介紹了nodejs簡單實現(xiàn)中英文翻譯的方法和示例,雖然還存在著不小的問題,但是也算是基本能用了,這里推薦給大家。
    2015-05-05
  • 深入剖析Express cookie-parser中間件實現(xiàn)示例

    深入剖析Express cookie-parser中間件實現(xiàn)示例

    本篇文章主要介紹了深入剖析Express cookie-parser中間件實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • NodeJs基本語法和類型

    NodeJs基本語法和類型

    這篇文章主要介紹了NodeJs基本語法和類型的相關資料,需要的朋友可以參考下
    2015-02-02
  • koa-compose簡單實現(xiàn)及使用的妙處

    koa-compose簡單實現(xiàn)及使用的妙處

    這篇文章主要為大家介紹了koa-compose簡單實現(xiàn)及使用的妙處詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 詳解使用Visual Studio Code對Node.js進行斷點調(diào)試

    詳解使用Visual Studio Code對Node.js進行斷點調(diào)試

    這篇文章主要介紹了詳解使用Visual Studio Code對Node.js進行斷點調(diào)試,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 詳解如何使用PM2將Node.js的集群變得更加容易

    詳解如何使用PM2將Node.js的集群變得更加容易

    本篇文章主要介紹了詳解如何使用PM2將Node.js的集群變得更加容易,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 詳解使用nvm安裝node.js

    詳解使用nvm安裝node.js

    本篇文章主要介紹了詳解nvm安裝node.js,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 配置nodejs環(huán)境的方法

    配置nodejs環(huán)境的方法

    本篇文章主要介紹了配置nodejs環(huán)境變量的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Node.js刷新session過期時間的實現(xiàn)方法推薦

    Node.js刷新session過期時間的實現(xiàn)方法推薦

    下面小編就為大家?guī)硪黄狽ode.js刷新session過期時間的實現(xiàn)方法推薦。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05

最新評論