【发布时间】:2014-06-28 17:16:19
【问题描述】:
我有一个嵌入在 C++ 应用程序中的 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);
})
不幸的是我得到的是这个
> node test.js
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' }
真正奇怪的是,如果我用节点设置一个简单的回显服务器,一切正常 美好的。这是有效的回显服务器代码:
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');
我从中得到
Sending data
received data
Echo server
hello
有什么原因吗:
- 我可以 telnet 进入我的应用程序了
- 我可以在同一端口上从节点连接到我的节点回显服务器
- 如果我从我的节点应用程序连接到我的应用程序,我会收到连接被拒绝
额外信息
- 在 OSX(小牛)上
- 节点版本 0.10.28
- C++ 中的 Telnet 服务器是通过嵌入式 lua 和 luasocket (lua 5.1) 提供的
【问题讨论】:
-
当您成功连接到 C++ telnet 服务器时,您使用的
telnet命令行是什么? -
rlwrap 远程登录 localhost 6502
标签: node.js networking telnet