使用节点js进行telnet

问题描述

1。我尝试使用节点js连接telnet。我正在尝试使用计算机上的节点js和telnet控制Epson投影仪。

2。我正在cmd中通过以下方式运行js代码:“ node filelocation \ test.js”

我使用的代码

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("%1POWR 1\r\n");
});

// connect to server
server.connect({
    host: "192.168.2.170",port: 4352
});

我正在通过以下方式在cmd中运行js代码:“ node filelocation \ test.js”

我得到的错误是:

TypeError: server.write is not a function
    at Telnet.<anonymous> (C:\Users\USER\Desktop\TEST\telnet2.js:11:12)
    at Telnet.emit (events.js:314:20)
    at Socket.<anonymous> (C:\Users\USER\node_modules\telnet-client\lib\index.js:70:16)
    at Object.onceWrapper (events.js:420:28)
    at Socket.emit (events.js:326:22)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1132:10)

解决方法

我检查了this软件包,但没有write()功能可供使用。而是使用exec()。还要像下面一样更改on('connect')来捕获错误。

server.on("connect",function(err,param){
    server.exec("%1POWR 1\r\n");
});
,

我使用了这段代码,并且对我有用。谢谢大家的支持。

 var net = require('net');
    
    var client = new net.Socket();
    client.connect(4352,'x.x.x.x',function() {
        console.log('Connected');
        client.write('%1POWR 0\r\n');
    });
    
    client.on('data',function(data) {
        console.log('Received: ' + data);
        client.destroy(); // kill client after server's response
    });
    
    client.on('close',function() {
        console.log('Connection closed');
    });