📄 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 + -