连接到NodeJS中的telnet服务器

Eyz*_*yzi 2 telnet node.js

这里有一台只能通过telnet进行控制的特殊设备,我已经做了一段时间了(通过PuTTy或Terminal)。

在NodeJS中,我创建了一个Web界面,可以更轻松地控制设备。我通过为通过telnet发送的不同命令运行不同的bash脚本来做到这一点。这样做很好,但是感觉太杂乱无章,更不用说每个命令的shell脚本了。我正在寻找一种更好的方法。

我想到直接从NodeJS连接到telnet服务器。我尝试了不同的程序包(即net,telnet客户端,telnet流,另一个telnet客户端等),但这不是我需要的那些工具,或者我只是没有正确实现它。

这是我正在使用telnet-client软件包测试的示例代码(其他仅为此示例的变体):

const telnet = require('telnet-client');
const server = new telnet();

// display server response
server.on("data", function(data){
    console.log(''+data);
});

// login when connected
server.on("connect", function(){
    server.write("login <user> <pass>");
});

// connect to server
server.connect({
    host: "172.16.0.1",
    port: 9600
});
Run Code Online (Sandbox Code Playgroud)

手动完成后,在“登录”请求之后,我应该看到“登录成功”消息,但是我什么也没回来。

该代码不正确吗?我不熟悉telnet,非常感谢您的帮助。

Eyz*_*yzi 5

如果有人遇到相同的问题,就在这里写下答案。

我的问题已解决,只需在要发送到服务器的字符串的末尾添加回车符和换行符即可。

server.write("login <user> <pass>\r\n");
Run Code Online (Sandbox Code Playgroud)