节点net.socket字符编码问题



我正在通过telnet连接到Cisco编解码器SX20。然后,我的套接字连接得到:连接后��u0018�� ��#��'。我期望类似于Password:login:。我使用Net.node连接的其他设备可正常工作。这是我得到的唯一部分。它总是看起来相同。我尝试了一个吨节点编码实现(本机和ICONV) - 没有任何可读性。其他客户工作正常,例如Putty(UTF8编码)或Telnet命令(自动发现?)。

一些结果:https://gist.github.com/below9k/4dbae508031d586ed7719958b425552c

- 分辨率/编辑:我最终使用https://github.com/blinkdog/telnet-stream解决了这一点显然,该单元在合作之前需要进行一些较小的Telnet谈判。

const telnetInput = new TelnetInput()
const telnetOutput = new TelnetOutput()
telnetInput.on('do', function (option) {
    telnetOutput.writeWont(option)
})
telnetInput.on('will', function (option) {
    telnetOutput.writeDont(option)
})
telnetInput.on('data', Meteor.bindEnvironment((data) => {
    console.log(data.toString('utf8'))
}))
socket.pipe(telnetInput)
telnetOutput.pipe(socket)

console.log返回 login: -yay

我的理解是,我向设备发送了几个标准化的信息(以上存储库中的更多信息),这使其正常工作。

我最终使用https://github.com/blinkdog/telnet-stream解决了这一点显然,该单元在合作之前需要进行一些较小的Telnet谈判。

const telnetInput = new TelnetInput()
const telnetOutput = new TelnetOutput()
telnetInput.on('do', function (option) {
    telnetOutput.writeWont(option)
})
telnetInput.on('will', function (option) {
    telnetOutput.writeDont(option)
})
telnetInput.on('data', Meteor.bindEnvironment((data) => {
    console.log(data.toString('utf8'))
}))
socket.pipe(telnetInput)
telnetOutput.pipe(socket)

console.log返回 login: -yay

我理解是,我向设备发送了几个标准化的信息(以上存储库中的更多信息),这使其正常工作。

以下9K

最新更新