xpe*_*int 3 networking udp tcp http node.js
我有3个简单的NodeJS服务器使用NET,HTTP和UDP.每个服务器侦听端口X但具有多个IP地址.我希望在客户端连接到服务器时检索服务器的实际IP地址(客户端连接的IP,客户端必须写入的IP以连接到服务器).
var httpService = http.createServer(function(req, res){
req.getActualServerAddress();
});
httpService.listen(8000);
var netService = net.createServer(function(socket) {
socket.getActualServerAddress();
});
netService.listen(8001);
var udpService = dgram.createSocket("udp4");
udpService.on("message", function (msg, rinfo){
rinfo.getActualServerAddress();
});
udpService.bind(8002);
Run Code Online (Sandbox Code Playgroud)
谢谢.
如果未指定主机名,则服务器将从0.0.0.0开始.因此,您可能无法获得理想的结果[阅读Maqurading].对于HTTP,您可以使用HTTP" 主机 "标头[自HTTP/1.1起必需],这可能对您的情况有益.
你还可以尝试一下:
socket.address()
Run Code Online (Sandbox Code Playgroud)
返回操作系统报告的套接字的绑定地址和端口.返回具有两个属性的对象,例如{"address":"192.168.57.1","port":62053}
这是tcp的示例:
var netService = require('net').createServer(function(socket) {
address = netService.address();
console.log("Stream on %j", socket.address());
console.log("opened server on %j", address);
});
netService.listen(8001);
Run Code Online (Sandbox Code Playgroud)
http的示例:
var httpService = require('http').createServer(function(req, res){
console.log("Stream on %j", req.connection.address());
res.end("Hi");
});
httpService.listen(8000);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4183 次 |
| 最近记录: |