Utilizo telnet para conectarme a un servidor de terminal, que representa el tráfico a un puerto RS-232.
Desafortunadamente, cuando se usan algunos de los dispositivos, no es posible enviar el carácter CTRL+ C(0x03). En lugar de transmitir el carácter, parece que el cliente local ha presionado el teclado y me he quedado en "algún otro modo". Lo que quería era enviar un personaje.
Para depurar esto, he estado jugando con:
^] toggle termdata
y
^] toggle options
Esto es lo que sucede cuando presiono CTRL+ Cen un servidor de terminal que no 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
Esto es lo que sucede en los servidores de terminal que funcionan:
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
Lo intenté toggle localcharspero no hizo ninguna diferencia.
También intenté mode characterlo que me permitió enviar el carácter CTRL+ C, pero aquí no obtuve ninguna salida del dispositivo.
¿Cómo puedo configurar mi cliente telnet para resolver esto?

Respuestas:
¿Has intentado desactivar los caracteres locales en tu cliente telnet?
También puede poner este comando en el
~/.telnetrcarchivo, dependiendo de su versión de telnet.fuente
Puede probar el modo de limpieza de 8 bits ... evita que telnet interprete gran parte de los datos
(Esto es un tiro en la oscuridad)
En su mayor parte, estás en el camino correcto, tratando de hacer que telnet detenga la interpretación previa de las pulsaciones de teclas ... como CTRL-C y CTRL-Z y otras. El modo de 8 bits debería ayudar.
fuente
Esto podría ayudar, aunque utiliza otras 3 herramientas en lugar de
telnet:echo 03 | xxd -r -p | nc host portfuente
^CEs un personaje de descanso. Puede enviarlo con un escape de telnet (el valor predeterminado es^]) y luegosend brk.fuente
BRKsecuencia de Telnet tiene un significado específico de implementación en el extremo receptor y no es lo mismo que enviar el carácterETX(^C). En los sistemas Unixy, generalmente significa hacer lo queTCSBRKioctlsea quetelnetdesté utilizando TTY . En los dispositivos en serie, eso a menudo se traduce en mantener baja la línea de transmisión durante un cuarto o medio segundo.quitcomandos disponibles en telnet.Utilicé 'alternar opciones' y 'alternar datos de término' para verificar que la situación en mi sitio coincida con la del póster original. Pude enviar el carácter ^ C (control-C) específicamente con el comando telnet 'enviar ip' como se describe en la documentación. En mi caso puse los 3 comandos en mi ~ / .telnetrc
fuente
Utilizar
si lo que desea es simplemente conectarse a un puerto del servidor e interrumpir
Ctrl Ccuando sea necesario. Puede instalarnccon elnetcatpaquete.PD: la idea está tomada de la respuesta de @ bambam-s, pero no sé cuál es el significado del
xxdcomando que se usó, y funciona bien sin él para mi caso de uso.fuente