Node.js之IP地址和端口號(hào)問題
Node.js IP地址和端口號(hào)
Web服務(wù)器開發(fā)
ip地址和端口號(hào)
- ip 地址用來定位計(jì)算機(jī)
- 端口號(hào)用來定位具體的應(yīng)用程序
- 所有需要聯(lián)網(wǎng)通信的應(yīng)用程序都會(huì)占用一個(gè)端口號(hào)
- 一切需要聯(lián)網(wǎng)通信的軟件都會(huì)占用一個(gè)端口號(hào)·端口號(hào)的范圍從0-65536之間
- 在計(jì)算機(jī)中有一些默認(rèn)端口號(hào),最好不要去使用
例如http服務(wù)的80
在開發(fā)過程中使用一些簡單好記的就可以了,例如3000、5000等沒什么含義的
var http = require('http') var server = http.createServer() // 2. 監(jiān)聽 request 請(qǐng)求事件,設(shè)置請(qǐng)求處理函數(shù) server.on('request', function (req, res) { console.log('收到請(qǐng)求了,請(qǐng)求路徑是:' + req.url) console.log('請(qǐng)求我的客戶端的地址是:', req.socket.remoteAddress, req.socket.remotePort) res.end('hello nodejs') }) server.listen(5000, function () { console.log('服務(wù)器啟動(dòng)成功,可以訪問了。。。') })
當(dāng)訪問 5000 端口號(hào)時(shí):
IP地址和端口號(hào)的概念
所有的聯(lián)網(wǎng)的程序,都會(huì)進(jìn)行網(wǎng)絡(luò)通信
計(jì)算機(jī)只有一個(gè)物理網(wǎng)卡,而且同一個(gè)局域網(wǎng)中,網(wǎng)卡的地址必須是唯一的
網(wǎng)卡是通過唯一的IP地址來進(jìn)行定位的
IP地址用來定位計(jì)算機(jī)
端口號(hào)用來具體的應(yīng)用程序(軟件)
一切需要聯(lián)網(wǎng)的通信軟件都會(huì)占用一個(gè)端口號(hào)
端口號(hào)的范圍是0-65536之間
在計(jì)算機(jī)中有一些默認(rèn)端口號(hào),最好不要去使用例如:HTTP服務(wù)的80
在開發(fā)過程過程中,使用簡單3000呀,8000呀是木有意義的。
啟動(dòng)服務(wù)器
打開cmd,輸入ipconfig,調(diào)出IP地址(IPV4),你的IP地址和127.0.0.1(本機(jī))是一致的,通過局域網(wǎng)(我的是IP地址:http://192.168.43.186:3000/)是可以和大家共享的。
如何查看客戶端是如何開啟端口號(hào)進(jìn)行的通信?
是通過net里面的api是:請(qǐng)求事件.socket.remotePort
console.log("請(qǐng)求我的客戶端的端口號(hào)是"+request.socket.remotePort);
代碼描述:
var http = require('http'); var server = http.createServer(); server.on('request',function(request,response){ console.log("收到客戶端請(qǐng)求了,請(qǐng)求路徑是"+request.url); // 請(qǐng)求對(duì)象的端口號(hào)查看 console.log("請(qǐng)求我的客戶端的端口號(hào)是"+request.socket.remotePort); }) server.listen(3000,function(){ console.log("服務(wù)器啟動(dòng)成功??梢酝ㄟ^http://127.0.0.1:3000/ 來進(jìn)行訪問"); })
在同一局域網(wǎng)下,再通過定位IP地址,就可以得出真正的通信地址,得出訪問服務(wù)器的遠(yuǎn)程客戶端的“地址”
通過方法:request.socket.remoteAddress獲取IP地址
var http = require('http'); var server = http.createServer(); server.on('request',function(request,response){ console.log("收到客戶端請(qǐng)求了,請(qǐng)求路徑是"+request.url); // 請(qǐng)求對(duì)象的(遠(yuǎn)程)端口號(hào)查看,收到的是不同的端口號(hào) console.log("請(qǐng)求我的客戶端的端口號(hào)是"+request.socket.remotePort); // 請(qǐng)求我的客戶端的IP地址是(遠(yuǎn)程) console.log("請(qǐng)求我的客戶端的IP地址是"+request.socket.remoteAddress); }) server.listen(3000,function(){ console.log("服務(wù)器啟動(dòng)成功??梢酝ㄟ^http://127.0.0.1:3000/ 來進(jìn)行訪問"); })
通過本機(jī)不同的軟件訪問,端口號(hào)不同
不同的客戶端請(qǐng)求IP地址不同
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用node.js半年來總結(jié)的 10 條經(jīng)驗(yàn)
從3月初來到帝都某創(chuàng)業(yè)公司的服務(wù)器團(tuán)隊(duì)實(shí)習(xí),到現(xiàn)在已接近半年的時(shí)間。PS: 已轉(zhuǎn)正,服務(wù)器端用的 Node。2014-08-08NodeJS連接MySQL數(shù)據(jù)庫并進(jìn)行增刪改查操作詳解
本篇是使用NodeJS的模塊MySQL操作MySQL數(shù)據(jù)庫的基礎(chǔ)教程,連接MySQL數(shù)據(jù)庫并進(jìn)行增刪改查操作詳解,需要的朋友可以參考下2024-02-02node操作mysql數(shù)據(jù)庫實(shí)例詳解
這篇文章主要介紹了node操作mysql數(shù)據(jù)庫,結(jié)合實(shí)例形式較為詳細(xì)的分析了node操作數(shù)據(jù)庫的連接、增刪改查、事務(wù)處理及錯(cuò)誤處理相關(guān)操作技巧,需要的朋友可以參考下2017-03-03