Mam aplikację, w której akceptuję połączenie przez gniazdo z klienta telnet i ustawiam prosty, oparty na klawiaturze graficzny interfejs graficzny.Wymuszenie klienta Telnet w trybie znakowym
Klient telnet, przynajmniej w systemie Linux, domyślnie przechodzi w tryb liniowy, więc zawsze muszę ręcznie wykonać ^]mode char
.
Odpowiedni dokument RFC sugeruje, że jeśli moja aplikacja wyśle po prostu znaki IAC DONT LINEMODE (\377\376\042)
, gdy klient się połączy, klient powinien przejść do trybu znakowego. Jednak to nie robi żadnej różnicy.
Jaki jest najprostszy kod, który wykona zadanie? Idealnie po prostu ciąg do wysłania. Moja aplikacja może absorbować wszelkie śmieci, które klient odsyła.
Domyślny stan równoważne NVT (podstawa wirtualną sieć terminali), że każdy koniec Telnet połączenie ma się zachowywać tak jak przy połączeniu __ wszystko_ jest wyłączone i nic nie jest włączone dopóki opcja, którą jeden koniec zaoferował, została uzgodniona z ich WILL i drugą odpowiedzią DO i/lub tą samą opcją, że ten sam koniec chce inny koniec do zrobienia został zażądany z ich DO, a drugi koniec WILL w odpowiedzi. Oczywiście opcja w jednym kierunku jest oddzielona od tej samej opcji w drugim kierunku - z wyjątkiem tego, że ECHO jest _specjalnym_wpisie ... – SlySven
... i jest niedozwolone (nie może sobie przypomnieć, czy jest to POWINIENNE NIE MUSISZ) do ECHO w jednym kierunku, jeśli kierunek wsteczny już jest w trybie ECHOing! – SlySven