无法从 Node.js 连接到 Telnet 服务器

Gar*_*don 5 networking telnet node.js

我有一个嵌入在 C++ 应用程序中的 telnet 服务器,我可以使用 telnet 毫无问题地连接到它。

我想编写一个将连接到我的服务器的节点应用程序,我已经尝试过

var net = require('net');

var port = 6502
var host = '127.0.0.1'

var socket = net.connect(port,host, function() {
    console.log("Sending data");
    socket.write("hello\r\n")

    socket.on("data", function (data) {
        console.log("received data");
        console.log( data.toString() );
        socket.end();
    })
})

socket.on("error", function(err) {
    console.log("Error");
    console.log(err);
})
Run Code Online (Sandbox Code Playgroud)

不幸的是我得到的是这个

> node test.js
{ [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect' }
Run Code Online (Sandbox Code Playgroud)

真正奇怪的是,如果我使用节点设置一个简单的回显服务器,一切正常。这是工作的回声服务器代码:

var net = require('net');

var server = net.createServer(function (socket) {
  socket.write('Echo server\r\n');
  socket.pipe(socket);
});

server.listen(6502, '127.0.0.1');
Run Code Online (Sandbox Code Playgroud)

从那我得到

Sending data
received data
Echo server
hello
Run Code Online (Sandbox Code Playgroud)

是否有任何原因:

  • 我可以很好地 telnet 到我的应用程序
  • 我可以在同一个端口上从节点连接到我的节点回显服务器
  • 如果我从我的节点应用程序连接到我的应用程序,我的连接被拒绝

额外信息

  • 在 OSX 上(小牛)
  • 节点版本 0.10.28
  • C++ 中的 Telnet 服务器通过嵌入式 lua 和 luasocket (lua 5.1) 提供