Node.js之IP地址和端口号问题
作者:兮动人
这篇文章主要介绍了Node.js之IP地址和端口号问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Node.js IP地址和端口号
Web服务器开发
ip地址和端口号
- ip 地址用来定位计算机
- 端口号用来定位具体的应用程序
- 所有需要联网通信的应用程序都会占用一个端口号
- 一切需要联网通信的软件都会占用一个端口号·端口号的范围从0-65536之间
- 在计算机中有一些默认端口号,最好不要去使用
例如http服务的80
在开发过程中使用一些简单好记的就可以了,例如3000、5000等没什么含义的
var http = require('http') var server = http.createServer() // 2. 监听 request 请求事件,设置请求处理函数 server.on('request', function (req, res) { console.log('收到请求了,请求路径是:' + req.url) console.log('请求我的客户端的地址是:', req.socket.remoteAddress, req.socket.remotePort) res.end('hello nodejs') }) server.listen(5000, function () { console.log('服务器启动成功,可以访问了。。。') })
当访问 5000 端口号时:
IP地址和端口号的概念
所有的联网的程序,都会进行网络通信
计算机只有一个物理网卡,而且同一个局域网中,网卡的地址必须是唯一的
网卡是通过唯一的IP地址来进行定位的
IP地址用来定位计算机
端口号用来具体的应用程序(软件)
一切需要联网的通信软件都会占用一个端口号
端口号的范围是0-65536之间
在计算机中有一些默认端口号,最好不要去使用例如:HTTP服务的80
在开发过程过程中,使用简单3000呀,8000呀是木有意义的。
启动服务器
打开cmd,输入ipconfig,调出IP地址(IPV4),你的IP地址和127.0.0.1(本机)是一致的,通过局域网(我的是IP地址:http://192.168.43.186:3000/)是可以和大家共享的。
如何查看客户端是如何开启端口号进行的通信?
是通过net里面的api是:请求事件.socket.remotePort
console.log("请求我的客户端的端口号是"+request.socket.remotePort);
代码描述:
var http = require('http'); var server = http.createServer(); server.on('request',function(request,response){ console.log("收到客户端请求了,请求路径是"+request.url); // 请求对象的端口号查看 console.log("请求我的客户端的端口号是"+request.socket.remotePort); }) server.listen(3000,function(){ console.log("服务器启动成功。可以通过http://127.0.0.1:3000/ 来进行访问"); })
在同一局域网下,再通过定位IP地址,就可以得出真正的通信地址,得出访问服务器的远程客户端的“地址”
通过方法:request.socket.remoteAddress获取IP地址
var http = require('http'); var server = http.createServer(); server.on('request',function(request,response){ console.log("收到客户端请求了,请求路径是"+request.url); // 请求对象的(远程)端口号查看,收到的是不同的端口号 console.log("请求我的客户端的端口号是"+request.socket.remotePort); // 请求我的客户端的IP地址是(远程) console.log("请求我的客户端的IP地址是"+request.socket.remoteAddress); }) server.listen(3000,function(){ console.log("服务器启动成功。可以通过http://127.0.0.1:3000/ 来进行访问"); })
通过本机不同的软件访问,端口号不同
不同的客户端请求IP地址不同
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。