Node.js 使用节点js的telnet

Node.js 使用节点js的telnet,node.js,telnet,Node.js,Telnet,1.我尝试使用node js连接telnet。我正试图从我的计算机上使用node js和telnet控制爱普生投影仪 2.我正在cmd中运行js代码:“node filelocation\test.js” 我使用的代码是: const telnet = require('telnet-client'); const server = new telnet(); // display server response server.on("data", function(dat

1.我尝试使用node js连接telnet。我正试图从我的计算机上使用node js和telnet控制爱普生投影仪

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)
TypeError:server.write不是一个函数
在Telnet。(C:\Users\USER\Desktop\TEST\telnet2.js:11:12)
在Telnet.emit(events.js:314:20)
在插座上。(C:\Users\USER\node\u modules\telnet client\lib\index.js:70:16)
在Object.onceWrapper(events.js:420:28)
在Socket.emit(events.js:326:22)
在TCPConnectWrap.afterConnect[as oncomplete](net.js:1132:10)
我检查了软件包,没有可用的
write()
函数。而是使用
exec()
。还可以像下面那样更改('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');
    });

未处理的拒绝错误:无法在套接字上连接。(C:\Users\USER\node\u modules\telnet client\lib\index.js:87:25)在Object.onceWrapper(events.js:420:28)在Socket.emit(events.js:314:20)在Socket._onTimeout(net.js:482:8)在listOnTimeout(internal/timers.js:554:17)在processTimers(internal/timers.js:497:7)未经处理的拒绝错误:超时时未收到响应。_onTimeout(C:\Users\USER\node\modules\telnet client\lib\index.js:171:20)在processtimer(internal/timers.js:554:17)在processtimer(internal/timers.js:497:7)在listOnTimeout(internal/timers.js:554:17)为什么不使用网络模块而不是telnet客户端。我发现它更容易使用。不过,我不确定“无法连接”错误。确保您指向正确的IP和端口这将帮助您我需要将命令“%1POWR 1\r\n”发送到ip:192.168.2.170和端口:4352