[英]Telnet connection with JavaScript
我正在使用 Numato 中繼,我嘗試使用帶有 net.Socket 的 javascript 通過 telnet 連接到它,然后發送命令。
但是,當嘗試連接時,它拒絕用戶名和密碼。 問題是輸入用戶名后輸入了奇怪的字符。
在代碼中,您可以看到我嘗試以各種方式查看輸出,但沒有結果。
如果有人知道原因或使用過 Numato 模塊,我將不勝感激。 這是代碼及其輸出:
var net = require('net');
var client = new net.Socket();
client.connect(23, '192.168.1.100', function() {
console.log('Connected');
});
client.on('connect', function(){
client.write('admin\n')
client.write('admin\n')
// client.write('admin\n' + 'admin\n')
})
client.on('data', function(data) {
console.log(''+data)
// var datos = []
// datos.push(data)
// datos.push(data.toJSON)
// console.log(datos)
// client.destroy(); // kill client after server's response
});
client.on('close', function() {
console.log('Connection closed');
});
根據Numato 文檔,此通道需要 ASCII 字符編碼,而不是您發送的 UTF 編碼字符串。
改變:
client.on('connect', function(){
client.write('admin\n')
client.write('admin\n')
// client.write('admin\n' + 'admin\n')
})
到:
client.on('connect', function(){
client.write('admin\n', 'ascii')
client.write('admin\n', 'ascii')
// client.write('admin\n' + 'admin\n')
})
注意:eol 的回答可能也適用於此。 如果您使用的是 Windows(此處假設),則您將同時需要\\r\\n
。
當我嘗試通過 NodeJS 與 telnet 服務器通信時,我遇到了類似的問題。 解決我的問題是在換行符之前使用回車符:
client.write('admin\r\n');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.