Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 连接到NodeJS中的telnet服务器_Node.js_Telnet - Fatal编程技术网

Node.js 连接到NodeJS中的telnet服务器

Node.js 连接到NodeJS中的telnet服务器,node.js,telnet,Node.js,Telnet,这里有一种特殊的设备,只能通过telnet来控制,我已经做了一段时间了(通过油灰或终端) 在NodeJS中,我创建了一个web界面,可以更容易地控制设备。为此,我为通过telnet发送的不同命令运行不同的bash脚本。这很好,但感觉太杂乱无章了,更不用说每个命令都有杂乱无章的shell脚本了。我在寻找更好的方法 我想到了直接从NodeJS连接到telnet服务器。我尝试过不同的软件包(即net、telnet客户端、telnet流、另一个telnet客户端等),但要么这些不是我需要的工具,要么就是

这里有一种特殊的设备,只能通过telnet来控制,我已经做了一段时间了(通过油灰或终端)

在NodeJS中,我创建了一个web界面,可以更容易地控制设备。为此,我为通过telnet发送的不同命令运行不同的bash脚本。这很好,但感觉太杂乱无章了,更不用说每个命令都有杂乱无章的shell脚本了。我在寻找更好的方法

我想到了直接从NodeJS连接到telnet服务器。我尝试过不同的软件包(即net、telnet客户端、telnet流、另一个telnet客户端等),但要么这些不是我需要的工具,要么就是我没有正确地实现它

下面是我正在使用telnet客户端软件包测试的示例代码(其他只是它的变体):

const telnet=require('telnet-client');
const server=new telnet();
//显示服务器响应
server.on(“数据”,函数(数据){
控制台日志(“”+数据);
});
//连接时登录
服务器上(“连接”,函数(){
server.write(“登录”);
});
//连接到服务器
server.connect({
主持人:“172.16.0.1”,
端口:9600
});
手动完成后,在“登录”请求之后,我应该会看到一条“登录成功”消息,但我没有得到任何回复


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

如果有人遇到同样的问题,我将在这里写下答案

我的问题通过在发送到服务器的字符串末尾添加回车符和换行符得到了解决

server.write("login <user> <pass>\r\n");
server.write(“登录\r\n”);
请尝试此代码,只需替换telnet服务器的IP地址和端口号


通过查看telnet客户端库,我怀疑它是为unix shell登录而构建的。此外,我在该包中找不到
服务器。请编写
方法。如果您正在通过自定义协议进行通信,那么您应该考虑在该地址上打开一个tcp套接字。从该软件包的文档中可以看出,在编写登录行之前,您应该等待server
ready
事件。看一看包的例子嗨niklon!成功了!非常感谢!显然,根据Sami Hult最初的建议,在
write
函数末尾添加“\r\n”也是必要的。谢谢大家!您好,请您解释一下如何连接到telnet客户端服务器并启动登录?我从npm telnet客户端站点复制了这些示例代码,但每次运行命令
node server.js
(我包含代码的文件),我都会收到一个错误连接拒绝错误。如何连接到telnet客户端并启动聊天会话?我最后只是使用了
net
模块,而不是
telnet客户端
。我发现它更容易使用。不过,我不确定连接被拒绝的错误。确保您指向正确的IP和端口。
server.write("login <user> <pass>\r\n");
var TelnetSocket, net, socket, tSocket;

net = require("net");

({TelnetSocket} = require("telnet-stream"));


socket = net.createConnection(23, "127.0.0.1");


tSocket = new TelnetSocket(socket);


tSocket.on("close", function() {
  return process.exit();
});


tSocket.on("data", function(buffer) {
  return process.stdout.write(buffer.toString("utf8"));
});


tSocket.on("do", function(option) {
  return tSocket.writeWont(option);
});


tSocket.on("will", function(option) {
  return tSocket.writeDont(option);
});


process.stdin.on("data", function(buffer) {
  return tSocket.write(buffer.toString("utf8"));
});