Node Net.Socket字符编码问题

时间:2016-12-27 21:40:00

标签: node.js sockets terminal character-encoding telnet

我通过telnet连接到Cisco编解码器SX20。 我的套接字连接后连接后获取:��\u0018�� ��#��\'。我期待与Password:login:类似的内容。我通过node&net; net.socket连接的其他设备工作正常。这是我得到的唯一一块;它始终看起来相同。 我尝试了很多节点编码实现(native和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

我的理解是,我向该单位发送了几个标准化的信息(上面的回购信息中的更多信息),这使它有效。

1 个答案:

答案 0 :(得分:0)

我最终使用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:-是的

我的理解是,我向单位发送了一些标准化的信息(更多信息在上述回购中),使它正常工作。

低于9k