Telnet gönderme Ctrl-C


14

Trafiği RS-232 bağlantı noktasına yakınlayan bir terminal sunucusuna bağlanmak için telnet kullanıyorum.

Ne yazık ki bazı cihazları kullanırken CTRL+ Ckarakterini (0x03) göndermek mümkün değildir . Karakteri iletmek yerine, yerel istemcinin tuş vuruşunu yakaladığı görülüyor ve "bazı diğer modlarda" kalıyorum. İstediğim sadece bir karakter göndermekti.

Bu hata ayıklamak için ile oynuyordum:

^] toggle termdata

ve

^] toggle options

Çalışmayan bir terminal sunucusunda CTRL+ tuşuna bastığımda şöyle olur C:

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

İşe yarayan terminal sunucularında şunlar olur:

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

Denedim toggle localcharsama fark etmedi.

Ayrıca + karakterini mode charactergöndermeme izin verdim, ancak burada cihazdan herhangi bir çıktı almadım.CTRLC

Telnet istemcimi bunu çözmek için nasıl yapılandırabilirim?


2
Bu hangi terminal sunucusu?
Michael Hampton

Yanıtlar:


5

Telnet istemcinizdeki yerel grafikleri kapatmayı denediniz mi?

bash$ telnet
telnet> toggle localchars
Won't recognize certain control characters.
telnet> open myhost

~/.telnetrcTelnet sürümünüze bağlı olarak bu komutu dosyaya da koyabilirsiniz .


Bunu denedim (sorunun son bölümünü okuyun)
Allan

3

8 bitlik temiz modu deneyebilirsiniz ... telnet'in verilerin çoğunu yorumlamasını engeller

telnet -8 host port

(Bu karanlıkta bir atış)

Çoğunlukla doğru yoldasınız, telnetin tuş vuruşlarını önceden yorumlamasını durdurmak için CTRL-C ve CTRL-Z ve diğerleri gibi. 8 bit modu yardımcı olacaktır.


1
Bunu denedim, işe yaramadı. Nasıl başka bir çözüm bulmak yaptım: terminal sunucusu "TCP sunucu modu" (sorunları olan varsayılan ayarları) olarak hareket etmek üzere yapılandırılabilir, ancak bu "Gerçek COM modu" olarak değiştirilirse işler çalışıyor. Aslında farkların ne olduğu hakkında hiçbir fikrim yok ...
Allan

çözüm bulduğunuz için tebrikler. Bir sorunu düzeltmek her zaman iyidir.
lornix

Yıl ... Bu çözümden çok memnun değilim, telnet istemci yapılandırmamda değişiklik yaparak çözmeyi tercih ederim
Allan

1
@Allan lütfen yorumunuzu cevap olarak gönderin, sorunu düzeltmek için doğru cevap olarak işaretleyin, teşekkürler.
Mevcut Değil

3

Bunun yerine 3 araç daha kullanmasına rağmen, bu yardımcı olabilir telnet:

echo 03 | xxd -r -p | nc host port


1

^Cbir mola karakteri. Telnet çıkışıyla gönderebilirsiniz (varsayılan değer ^]) ve sonra send brk.


3
Telnet BRKdizisi, alıcı uç üzerinde uygulamaya özel bir öneme sahiptir ve ETX( ^C) karakterinin gönderilmesi ile aynı değildir . Unixy sistemlerinde, genellikle TTY'nin kullandığı TCSBRK ioctlher şeyi yapmak anlamına gelir telnetd. Seri cihazlarda, bu genellikle iletim hattını çeyrek ila yarım saniye boyunca düşük tutmak anlamına gelir.
Blrfl

Bir şeyi değiştirip değiştirmediğinden emin değilim, ancak quittelnet'te de komut var.
VasyaNovikov

0

Sitemdeki durumun orijinal posterinkiyle eşleştiğini doğrulamak için 'seçenekleri değiştir' ve 'termdataları değiştir' seçeneklerini kullandım. ^ C (kontrol-C) karakterini özellikle telnet komutuyla 'send ip' ile belgelerinde açıklandığı gibi gönderebildim. Benim durumumda 3 komutu da ~ / .telnetrc


0

kullanım

nc host port

İstediğiniz şey sadece bir sunucu bağlantı noktasına bağlanırsa ve Ctrl Cgerektiğinde kesilirse . Sen yükleyebilir ncile netcatpaketin.

PS fikri @ bambam-s cevabından alınmıştır, ancak xxdkullanılan komutun anlamının ne olduğunu bilmiyorum ve kullanım durumum için onsuz gayet iyi çalışıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.