我有一个嵌入在C++应用程序中的Telnet服务器,可以使用Telnet连接到该服务器。
我想编写一个Node应用程序来连接我的服务器,我已经尝试过以下方法:
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' }
真奇怪,如果我使用Node.js设置一个简单的回显服务器,一切都很正常。下面是工作正常的回显服务器代码:
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连接我的应用程序
- 我可以从node连接到同一端口上运行的节点echo服务器
- 如果我从我的node应用程序连接到我的应用程序,则会收到拒绝连接的消息
额外信息
- 操作系统:OSX(Mavericks)
- Node版本:0.10.28
- 使用嵌入式Lua和LuaSocket(Lua 5.1)提供的C ++ Telnet服务器。
telnet
命令行是什么? - mscdex