📄 rfc726.txt
字号:
using host is allowed to send a character a time,
though this would be a waste of RCTE. The
transmission classes commands are GUIDELINES, so
deviating from them, as when the user's buffer gets
full, is allowed. 6d4a
Additionally, the using host may send a break class
character, without knowing that it is one (as with
type-ahead). 6d4b
If the user implementation is clever it may send
the user entered data to the server before it is
actually needed. This type ahead data may contain
break characters.
[page 11]
NWG/RFC# 726 JBP DHC 8-MAR-77 08:29 39237
Remote Controlled Transmission & Echoing Telnet Option
Assume that only space is a break character (that
is the last break reset command specified print up
to and including the break characters and set the
break classes to class 9). Suppose the user had
typed "abc<space>def<esc>ghi<cr>". The user side
RCTE could send it all to the server, but it could
print only "abc<space>", and would have to buffer
"def<esc>ghi<cr>" at least until a break reset
command was received from the server. That break
reset command could change the break ckasses
requiring rescanning the buffered string.
For example suppose the break reset command set the
break characters to class 5 and the action to print
up to but not including the break character. The
user RCTE could then print "def" and discard the
<esc>, but whould have to continue to buffer the
"ghi<cr>".
The problem with buffering occurs when printing on
the user's terminal must be suspended, after the user
has typed a currently valid break character and until
a break reset command is received from the serving
host. During this time, the user may be typing
merrily along. The text being typed may be SENT, but
may not yet be PRINTED. 6d4c
The more common problem of filling the transmission
buffer, while awaiting a host to host allocate from
the serving host, may also occur, but this problem is
well known to implementors and in no way special to
RCTE. 6d4d
In any case, when the buffer does fill and further
text typed by the user will be lost, the user should
be notified (perhaps by ringing the terminal bell). 6d4e
Text should be buffered by the using host until the
user types a character which belongs to the
transmission class in force at the moment the character
is typed. 6d5
Transmission class reset commands may be sent by the
serving host at any time. If they are frequently sent
separate from break class reset commands, it will
probably be better to exit from RCTE and enter regular
character at a time transmission. 6d6
It is not immediately clear what the using host should
[page 12]
NWG/RFC# 726 JBP DHC 8-MAR-77 08:29 39237
Remote Controlled Transmission & Echoing Telnet Option
do with currently buffered text, when a transmission
classes reset command is received. The buffering is
according to the previous transmission classes scheme. 6d7
The using host clearly should not simply wait until a
transmission character (according to the new scheme)
is typed. 6d7a
Either the buffered text should be rescanned, under
the new scheme; 6d7b
Or the buffered text should simply be sent as a
group. This is the simpler approach, and probably
quite adequate. 6d7c
It is possible to define NO BREAK CHARACTERS except
Telnet commands (IAC ...). This seems undesirable and
should not be done. 6d8
If this situation were to occur the using host should
send a Telnet command to allow the server to know
when he may reset the break classes, but the
mechanism is awkward and this case should be avoided. 6d8a
6. Sample Interaction: 7
"S:" is sent from serving (WILL RCTE) host to using host.
"U:" is sent from using (DO RCTE) host to serving host.
"T:" is entered by the terminal user.
"P:" is printed on the terminal.
Text surrounded by square brackets ([]) is commentary.
Text surrounded by angle brackets (<>) is to be taken as
a single unit. E.g., carriage return is <cr>, and the
decimal value 27 is represented <27>. 7a
The following interaction shows a logon to a Tenex,
initiation of the DED editor, insertion of some text and
the return to the Exec level. 7b
An attempt has been made to give some flavor of the
asynchrony of network I/O and the user's terminal
input. Many other possible combinations, using the same
set of actions listed below, could be devised. The
actual order of events will depend upon network and
hosts' load and the user's typing speed. 7b1
We assume that the user's Telnet is also in an "insert
linefeed" mode. That is, whenever the user types carriage
[page 13]
NWG/RFC# 726 JBP DHC 8-MAR-77 08:29 39237
Remote Controlled Transmission & Echoing Telnet Option
return <cr> the user Telnet sends both carriage return
and linefeed <cr><lf> (the Telnet end of line signal).
When space character occurs at the end of a line in the
example description it is shown explicitly by <sp> to
avoid confusion. Other uses of the space character are
not so marked to avoid destroying the readability of the
example. 7c
A Telnet connection has already been opened, but the
TENEX prompt has not yet been issued. The hosts first
discuss using the RCTE option: 7d
S: <IAC><WILL><RCTE> 7d1
U: <IAC><DO><RCTE> 7d2
S: TENEX 1.31.18, TENEX EXEC 1.50.2<cr><lf>@
<IAC><SB><RCTE><11><1><24><IAC><SE> 7d3
[Print the herald and echo input text up to a break
character, but do not echo the break character.
Classes 4 (Format Effectors), 5 (Non-format Effector
Controls and <DEL>), and 9 (<sp>) act as break
characters.] 7d3a
P: TENEX 1.31.18, TENEX EXEC 1.50.2<cr><lf>@ 7d4
T: LOGIN ARPA<cr> 7d5
P: LOGIN 7d6
U: LOGIN<sp> 7d7
U: ARPA<cr><lf> 7d8
S: <sp><IAC><SB><RCTE><0><IAC>SE> 7d9
P: <sp>ARPA 7d10
S: <cr><lf>(PASSWORD): <IAC><SB><RCTE><7><IAC><SE> 7d11
P: <cr><lf>(PASSWORD):<sp> 7d12
T: WASHINGTON 1000<cr> 7d13
[The password "WASHINGTON" is not echoed. Printing of
"1000<cr>" is withheld] 7d13a
U: WASHINGTON<sp> 7d14
[page 14]
NWG/RFC# 726 JBP DHC 8-MAR-77 08:29 39237
Remote Controlled Transmission & Echoing Telnet Option
U: 1000<cr><lf> 7d15
S: <sp><IAC><SB><RCTE><3><IAC><SE> 7d16
S: <cr><lf>JOB 17 ON TTY41 7-JUN-73 14:13<cr><lf>@
<IAC><SB><RCTE><0><IAC><SE> 7d17
P: <sp>1000 7d18
[Printing is slow at this point; so the account
number is not printed as soon as the server's command
for it is received.] 7d18a
P: <cr><lf>JOB 17 ON TTY41 7-JUN-73 14:13<cr><lf>@ 7d19
T: DED<esc><cr> 7d20
P: DED 7d21
U: DED<esc> 7d22
S: .SAV;1<IAC><SB><RCTE><0><IAC><SE> 7d23
P: .SAV;1 7d24
U: <cr><lf> 7d25
S: <cr><lf><lf>DED 3/14/73 DRO,KRK<cr><lf>:
<IAC><SB><RCTE><15><1><IAC><255><IAC><SE> 7d26
[The program is started and the DED prompt ":" is
sent. At the command level, DED responds to every
character. The server sets the break classes to all
classes.] 7d26a
P: <cr><lf><lf>DED 3/14/73 DRO,KRK<cr><lf>: 7d27
T: IThis is a test line.<cr>This is another test
line.<^Z>Q 7d28
["I" means Insert Text. The text follows, terminated
by a Control-Z. The "Q" instructs DED to Quit.] 7d28a
U: I 7d29
U: This is a test line.<cr><lf> 7d30
S: I<cr><lf>*<IAC><SB><RCTE><11><0><24><IAC><SE> 7d31
[page 15]
NWG/RFC# 726 JBP DHC 8-MAR-77 08:29 39237
Remote Controlled Transmission & Echoing Telnet Option
[DED prompts the user, during text input, with an
asterisk at the beginning of every line. The server
sets the break classes to classes 4 and 5, the format
effectors and the non-format effector controls.] 7d31a
P: I<cr><lf>*This is a test line. 7d32
S: <cr><lf>*<IAC><SB><RCTE><0><IAC><SE> 7d33
P: <cr><lf>*This is another test line. 7d34
U: This is another test line.<^Z> 7d35
U: Q 7d36
[Note that the "Q" will not immediately be printed on
the terminal, since it must wait for authorization.] 7d36a
S: ^Z<cr><lf>:<IAC><SB><RCTE><15><1><IAC><255><IAC><SE> 7d37
[The returned "^Z" is two characters, not the ASCII
Control-Z or <sub>.] 7d37a
S: Q<cr><lf>@<IAC><SB><RCTE><11><1><24><IAC><SE> 7d38
P: Q<cr><lf>@ 7d39
And the user is returned to the Exec level. 7d40
[page 16]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -