小编Eyz*_*yzi的帖子

连接到NodeJS中的telnet服务器

这里有一台只能通过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,非常感谢您的帮助。

telnet node.js

2
推荐指数
1
解决办法
6406
查看次数

NodeJS 从网络套接字写入获取响应

我正在尝试通过该write功能从特定请求中获得响应。

我通过net模块连接到设备(这是与之通信的唯一方式)。目前,我正在.on('data',function)听取上述设备的回应。我可以通过write我期望收到一行响应的函数发送命令。我该怎么做呢?

当前代码:

server = net.Socket();

// connect to server
server.connect(<port>,<ip>,()=>{
    console.log("Connected to server!");
});

// log data coming from the server
server.on("data",(data)=>{
    console.log(''+data);
});

// send command to server
exports.write = function(command){
    server.write(command+"\r\n");
};
Run Code Online (Sandbox Code Playgroud)

这是一个工作代码。通过向设备发送命令会server.write返回一个现在只出现在终端中的响应。我想在write请求后立即返回该响应。最好在exports.write函数内。

javascript sockets node.js

2
推荐指数
1
解决办法
3668
查看次数

标签 统计

node.js ×2

javascript ×1

sockets ×1

telnet ×1