Eu uso o telnet para conectar-me a um servidor de terminal, que faz proxy do tráfego para uma porta RS-232.
Infelizmente ao utilizar alguns dos dispositivos não é possível enviar o caractere CTRL+ C(0x03). Em vez de transmitir o caractere, parece que o cliente local capturou o pressionamento de tecla e fiquei em "outro modo". O que eu queria era apenas enviar um personagem.
Para depurar isso, tenho brincado com:
^] toggle termdata
e
^] toggle options
Aqui está o que acontece quando pressiono CTRL+ Cem um servidor de terminal que não funciona:
telnet 10.10.129.101 2012
Trying 10.10.129.101...
Connected to termserv-val3 (10.10.129.101).
Escape character is '^]'.
^]
telnet> toggle options
Will show option processing.
^]
telnet> toggle termdata
Will print hexadecimal representation of terminal traffic.
SENT IAC IP
SENT DO TIMING MARK
Aqui está o que acontece nos servidores de terminal que funcionam:
telnet termserv-val2 2012
Trying 10.10.128.93...
Connected to termserv-val2 (10.10.128.93).
Escape character is '^]'.
telnet> toggle options
Will show option processing.
telnet> toggle termdata
Will print hexadecimal representation of terminal traffic.
< 0x0 03
^C
Eu tentei toggle localchars
, mas não fez nenhuma diferença.
Também tentei mode character
o que me permitiu enviar o caractere CTRL+ C, mas aqui não obtive nenhuma saída do dispositivo.
Como posso configurar meu cliente telnet para resolver isso?
Responder1
Você já tentou desligar localchars em seu cliente telnet?
bash$ telnet
telnet> toggle localchars
Won't recognize certain control characters.
telnet> open myhost
Você também pode colocar este comando no ~/.telnetrc
arquivo, dependendo da sua versão do telnet.
Responder2
Isso pode ajudar, embora use três outras ferramentas em vez de telnet
:
echo 03 | xxd -r -p | nc host port
Responder3
Você pode tentar o modo limpo de 8 bits... ele impede que o telnet interprete muitos dos dados
telnet -8 host port
(Este é um tiro no escuro)
Na maioria das vezes, você está no caminho certo, tentando fazer com que o telnet pare de pré-interpretar as teclas digitadas... como Ctrl+ Ce Ctrl+ Ze outros. O modo de 8 bits deve ajudar.
Responder4
Eu estava lutando com isso e não encontrando uma resposta pesquisando no Google. Este é um tópico muito antigo, mas deixarei isso caso alguém venha aqui procurando uma solução como eu.
- Entre no modo de comando telnet com Ctrl+]
- Digite o comando:
mode character
. Isso coloca o telnet emmodo de personagem, que por qualquer motivo agora funciona como você esperaria, Crtl+ Ce tudo.