这里有一台只能通过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,非常感谢您的帮助。
如果有人遇到相同的问题,就在这里写下答案。
我的问题已解决,只需在要发送到服务器的字符串的末尾添加回车符和换行符即可。
server.write("login <user> <pass>\r\n");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6406 次 |
| 最近记录: |