class Telnet
- Telnet
- Reference
- Object
Overview
Telnet for crystal lang
Defined in:
telnet.crConstant Summary
-
ABORT =
238_u8
-
AO =
245_u8
-
AYT =
246_u8
-
AYT_RESPONSE =
"nobody here but us pigeons".to_slice
-
BREAK =
243_u8
-
CR =
13_u8
-
DM =
242_u8
-
DO =
253_u8
-
DONT =
254_u8
-
EC =
247_u8
-
EL =
248_u8
-
EOF =
236_u8
-
EOL =
"\r\n".to_slice
-
EOR =
239_u8
-
GA =
249_u8
-
IAC =
255_u8
-
IP =
244_u8
-
LF =
10_u8
-
NOP =
241_u8
-
NULL =
0_u8
-
OPT_3270REGIME =
29_u8
-
OPT_AUTHENTICATION =
37_u8
-
OPT_BINARY =
0_u8
-
OPT_BM =
19_u8
-
OPT_DET =
20_u8
-
OPT_ECHO =
1_u8
-
OPT_ENCRYPT =
38_u8
-
OPT_EOR =
25_u8
-
OPT_EXOPL =
255_u8
-
OPT_LFLOW =
33_u8
-
OPT_LINEMODE =
34_u8
-
OPT_LOGOUT =
18_u8
-
OPT_NAMS =
4_u8
-
OPT_NAOCRD =
10_u8
-
OPT_NAOFFD =
13_u8
-
OPT_NAOHTD =
12_u8
-
OPT_NAOHTS =
11_u8
-
OPT_NAOL =
8_u8
-
OPT_NAOLFD =
16_u8
-
OPT_NAOP =
9_u8
-
OPT_NAOVTD =
15_u8
-
OPT_NAOVTS =
14_u8
-
OPT_NAWS =
31_u8
-
OPT_NEW_ENVIRON =
39_u8
-
OPT_OLD_ENVIRON =
36_u8
-
OPT_OUTMRK =
27_u8
-
OPT_RCP =
2_u8
-
OPT_RCTE =
7_u8
-
OPT_SGA =
3_u8
-
OPT_SNDLOC =
23_u8
-
OPT_STATUS =
5_u8
-
OPT_SUPDUP =
21_u8
-
OPT_SUPDUPOUTPUT =
22_u8
-
OPT_TM =
6_u8
-
OPT_TSPEED =
32_u8
-
OPT_TTYLOC =
28_u8
-
OPT_TTYPE =
24_u8
-
OPT_TUID =
26_u8
-
OPT_X3PAD =
30_u8
-
OPT_XASCII =
17_u8
-
OPT_XDISPLOC =
35_u8
-
SB =
250_u8
-
SE =
240_u8
-
SUSP =
237_u8
-
SYNCH =
242_u8
-
WILL =
251_u8
-
WONT =
252_u8
Constructors
Instance Method Summary
- #binary_mode : Bool
-
#buffer(data) : Bytes
Buffering here deals with "un-escaping" according to the TELNET protocol.
- #buffer : Slice(UInt8)
- #prepare(command, escape = false)
- #suppress_go_ahead : Bool
Constructor Detail
Instance Method Detail
Buffering here deals with "un-escaping" according to the TELNET protocol. In the TELNET protocol byte value 255 is special. The TELNET protocol calls byte value 255: "IAC". Which is short for "interpret as command". The TELNET protocol also has a distinction between 'data' and 'commands'.
If a byte with value 255 (=IAC) appears in the data, then it must be escaped. Escaping byte value 255 (=IAC) in the data is done by putting 2 of them in a row. So, for example: Bytes[255] -> Bytes[255, 255] Or, for a more complete example, if we started with the following: Bytes[1, 55, 2, 155, 3, 255, 4, 40, 255, 30, 20] ... TELNET escaping would produce the following: Bytes[1, 55, 2, 155, 3, 255, 255, 4, 40, 255, 255, 30, 20] (Notice that each "255" in the original byte array became 2 "255"s in a row.) Buffer here deals with "un-escaping". In other words, it un-does what was shown in the examples. So, for example, it does this: Bytes[255, 255] -> Bytes[255] And, for example, goes from this: Bytes[1, 55, 2, 155, 3, 255, 255, 4, 40, 255, 255, 30, 20] ... to this: Bytes[1, 55, 2, 155, 3, 255, 4, 40, 255, 30, 20]