【发布时间】:2015-04-27 09:24:46
【问题描述】:
我在 Azure 上创建了一个虚拟机并定义了一个 TCP 端点。然后我创建了一个 Node.js TCP 服务器,如下所示:
var net = require('net');
var host = '127.0.0.1';
var port = 8000;
var times = 1;
net.createServer(function (socket) {
console.log('CONNECTED: ' + socket.remoteAddress + ':' + socket.remotePort);
socket.on('data', function (msg) {
console.log("Message received is: " + msg);
if (times == 1)
socket.write("Server says HI");
times++;
executeStatement();
});
socket.on('close', function (data) {
console.log('CLOSED: ' + socket.remoteAddress + ' ' + socket.remotePort);
});
}).listen(port, host);
console.log('System waiting at http://localhost:8000');
我能够在同一台主机上连接到服务器,因此同一台机器上不同端口上的两个应用程序可以双向通信。当我尝试通过公共 IP 地址和端口号连接到虚拟机时,它失败了。我尝试在虚拟机上为专用端口(8000)添加入站防火墙规则,但这也没有什么不同。拜托,谁能给我一些想法和/或链接来帮助解决这个问题。
【问题讨论】:
-
您是否创建了一个端点,将一些公共端口(例如 8000)映射到内部端口 8000?
-
嗨,大卫。是的,我做到了。我设法解决了这个问题。将立即发布答案。
标签: node.js azure virtual-machine tcpserver