Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Операционные среды АСОИУ / L20
.TXT я_6.3. ‘ҐвҐўлҐ Є®¬¬гЁЄ жЁ®лҐ Їа®в®Є®«л
Ќ бҐвҐў®¬ га®ўҐ ®Ў¬Ґ Їа®Ё§ў®¤Ёвбп ЎҐ§ Ї®¤вўҐа¦¤ҐЁп б
Ї®¬®ймо бвагЄвга ¤ ле, §лў Ґ¬ле ¤ в Ја ¬¬ ¬Ё.
ЏҐаҐ¤ з ЎҐ§ Ї®¤вўҐа¦¤ҐЁп ®§ з Ґв, зв® Ї®бл« п ¤ в Ја ¬¬л,
ЇҐаҐ¤ ой п бв®а® Ґ ¬®¦Ґв Ўлвм 㢥ॠ, зв® нвЁ ¤ в Ја ¬¬л
Ўг¤гв ЇаЁпвл, ¤ ҐйҐ Ё ў в®© ¦Ґ б ¬®© Ї®б«Ґ¤®ў ⥫м®бвЁ, Є Є®©
Ўл«Ё Ї®б« л.
Љ ЁЎ®«ҐҐ а бЇа®бва Ґл¬ Їа®в®Є®« ¬ бҐвҐў®Ј® га®ўп
®в®бпвбп б«Ґ¤гойЁҐ Їа®в®Є®«л:
IPX (Internetwork Packet Exchange) б।л Novell, ¤® 70%
бҐвҐ© ॠ«Ё§гов Їа®в®Є®«л нв®© б।л. ” ЄвЁзҐбЄЁ бв ¤ авл©
Їа®в®Є®«.
IP (Internet Protocol) ЁбЇ®«м§гҐвбп ў а §«Ёзле
ўлзЁб«ЁвҐ«мле б। е. ЋзҐм иЁа®Є® а бЇа®бва Ґл© Їа®в®Є®«.
€бв®аЁп ҐЈ® а бЇа®бва ҐЁп Ё¤Ґв ®в бҐвҐ© UNIX.
NetBIOS Ї®¤¤Ґа¦Ёў Ґвбп ў бҐвпе IBM, Novell, Microsoft.
Ћб®ЎҐ® Ї®Їг«пॠў бҐвпе IBM.
ЌҐЇ®б।б⢥® ЇҐаҐ¤ зг Ё ЇаЁҐ¬ Ёд®а¬ жЁЁ ®бгйҐбвў«пов
бҐвҐўлҐ Є авл, гбв ®ў«ҐлҐ ў Є®¬ЇмовҐаҐ.
ЏаЁЄ« ¤®© Їа®Ја ¬¬Ґ Ґ Ґ®Ўе®¤Ё¬®бвЁ а Ў®в вм б бҐвҐў®©
Є ав®© Їап¬го. ђ Ў®в ®бгйҐбвў«пҐвбп зҐаҐ§ бЇҐжЁ «млҐ
Їа®Ја ¬¬л-¤а ©ўҐал.
„«п ўл§®ў ¤а ©ўҐа б। ЇаҐ¤®бв ў«пҐв бЇҐжЁ «мл©
Їа®Ја ¬¬л© ЁвҐадҐ©б ў ўЁ¤Ґ ЇаҐалў Ёп Ё«Ё ¤аҐб в®зЄЁ ўе®¤ ў
¤а ©ўҐа.
‚ ॣЁбвал § ЇЁблў овбп ¤ лҐ б®Ј« б® Їа®в®Є®« , § ⥬
ўл§лў Ґвбп 㦮Ґ ЇаҐалў ЁҐ Ё«Ё Їа®жҐ¤га .
Џа®Ја ¬¬ Ґ д®а¬ЁагҐв Ї ЄҐвл, Є®в®алҐ ЇҐаҐ¤ овбп
ҐЇ®б।б⢥® ў Є «. ќвЁ Ї ЄҐвл д®а¬ЁагҐв Є®¬¬гЁЄ жЁ® п
б। , Ё¬Ґ®, ¤а ©ўҐа. Ќ® ® д®а¬ЁагҐв Ёе ®б®ўҐ
Ёд®а¬ жЁЁ, ЇаҐ¤®бв ў«пҐ¬®© ЇаЁЄ« ¤®© Їа®Ја ¬¬®©.
€д®а¬ жЁп ¤а ©ўҐа㠯।®бв ў«пҐвбп ў ўЁ¤Ґ бвагЄвгал ¤ ле,
§лў Ґ¬®©, ®Ўлз®, "гЇа ў«пойЁ© Ў«®Є".
‚ гЇа ў«пойЁ© Ў«®Є ўе®¤Ёв:
- ¤аҐб п Ёд®а¬ жЁп;
- е а ЄвҐа Є®¬ ¤л;
- ¤аҐб ЎгдҐа®ў ¤ ле;
- १г«мвЁагойЁҐ Ї®«п.
„а ©ўҐа зЁв Ґв ᮤҐа¦Ё¬®Ґ гЇа ў«по饣® Ў«®Є , ўлЇ®«пҐв
ЇаҐ¤ЇЁб лҐ ¤Ґ©бвўЁп Ё ў®§ўа й Ґв १г«мв в ўлЇ®«ҐЁп ®ЇҐа жЁЁ.
ђ Ў®в ЇаЁЄ« ¤®© Їа®Ја ¬¬л, ®бгйҐбвў«по饩 ®Ў¬Ґ Ї® бҐвЁ,
ᮤҐа¦Ёв б«Ґ¤гойЁҐ вЁЇ®ўлҐ нв Їл:
1) ЁЁжЁ «Ё§ жЁп;
2) ®Ў¬Ґ ¤ л¬Ё;
3) ¤ҐЁЁжЁ «Ё§ жЁп.
• а ЄвҐа 1)-Ј® Ё 3)-Ј® нв Ї®ў ®ЇаҐ¤Ґ«пҐвбп ўЁ¤®¬ Їа®в®Є®« .
ђ бᬮваЁ¬ ў Є зҐб⢥ ЇаЁ¬Ґа Є®¬Ї®Ґвл ЇаЁЄ« ¤ле
Їа®Ја ¬¬, ®Ў¬ҐЁў ойЁебп ¤ л¬Ё Ї® Їа®в®Є®«г NetBIOS. ЋЎйЁҐ Ё¤ҐЁ
®бв гвбп в ЄЁ¬Ё ¦Ґ Ё ЇаЁ ¤агЈЁе Їа®в®Є®« е.
Ћб®ў®© Їа®в®Є®« NetBIOS пў«пҐвбп бвагЄвга ¤ ле,
§лў Ґ¬ п NCB - Network Control Block. (‚ Їа®в®Є®«Ґ IPX Ґбвм
бвагЄвга , б«г¦ й п ⥬ ¦Ґ жҐ«п¬ ECB - Event Control Block.)
Џ бЄ «ҐўбЄ®Ґ ®ЇЁб ЁҐ бвагЄвгал NCB Ё¬ҐҐв б«Ґ¤гойЁ© ўЁ¤:
Type
TNCB = Record
Cmd : Byte; {command code}
CCode : Byte; {error code}
LocalSessionNumber : Byte; {session number}
NetworkNameNumber : Byte; {name number}
Buffer : Pointer; {data buffer pointer}
Size : Word; {data buffer size}
CallName : Array[0..15] Of Char;
OurName : Array[0..15] Of Char;{self name}
ReceiveTimeout : Byte; {receive timeout}
SendTimeout : Byte; {send timeout}
PostRoutine : Pointer; {post-procedure address}
AdapterNumber : Byte; {adapter number}
FinalCCode : Byte; {final error code}
Reserved : Array[0..13] Of Char;{reserved}
End {TNCB};
Cmd - Є®¤ Є®¬ ¤л;
CCode - Є®¤ ®иЁЎЄЁ, ўл¤ ў Ґ¬л© ¤® ўлЇ®«ҐЁп Є®¬ ¤л;
LocalSessionNumber - ®¬Ґа Є « ¤«п ва бЇ®ав®Ј® га®ўп;
NetworkNameNumber - ®¬Ґа Ё¬ҐЁ бв жЁЁ;
Buffer - ¤аҐб ЎгдҐа ¤ ле;
Size - а §¬Ґа ЎгдҐа ¤ ле;
CallName - Ё¬п бв жЁЁ § 票п;
OurName - б®Ўб⢥®Ґ Ё¬п бв жЁЁ;
ReceiveTimeout - ЁвҐаў « ®¦Ё¤ Ёп ўлЇ®«ҐЁп Є®¬ ¤л ЇаЁҐ¬ ;
SendTimeout - ЁвҐаў « ®¦Ё¤ Ёп ўлЇ®«ҐЁп Є®¬ ¤л ЇҐаҐ¤ зЁ;
PostRoutine - ¤аҐб Їа®жҐ¤гал ®Ўа в®Ј® ўл§®ў ;
AdapterNumber - ®¬Ґа бҐвҐў®© Є авл;
FinalCCode - Є®¤ § ўҐаиҐЁп Є®¬ ¤л;
Reserved - १Ґаў ¤«п ўгв२е 楫Ґ© Їа®в®Є®« .
‚ ᮮ⢥вбвўЁҐ б вҐе®«®ЈЁҐ© ®аЈ Ё§ жЁЁ г¤ «Ґ®Ј® ўл§®ў
Їа®жҐ¤га RPC ўбҐ дгЄжЁЁ ¬®Јгв ўлЇ®«пвмбп Є Є ў ०Ё¬Ґ б
®¦Ё¤ ЁҐ¬, в Є Ё ў бЁеа®®¬ ०Ё¬Ґ.
‚ ЇҐаў®¬ б«гз Ґ, ўл§ў ў Їа®жҐ¤гаг ¤а ©ўҐа , Їа®Ја ¬¬
室Ёвбп ў Ґ© ¤® § ўҐаиҐЁп ®ЇҐа жЁЁ.
‚® ўв®а®¬ б«гз Ґ Ё§ ўл§®ў Їа®жҐ¤гал ¤а ©ўҐа гЇа ў«ҐЁҐ
ба §г ¦Ґ ў®§ўа й Ґвбп ў Їа®Ја ¬¬г, ®Ў ®Є®з ЁЁ ®ЇҐа жЁЁ
бўЁ¤ҐвҐ«мбвўгҐв ўл§®ў Є®¬¬гЁЄ жЁ®®© б।®© Їа®жҐ¤гал ®Ўа в®Ј®
ўл§®ў .
Џа®жҐ¤га ®Ўа в®Ј® ўл§®ў ¤®«¦ 㤮ў«Ґвў®апвм вॡ®ў Ёп¬
Є Їа®жҐ¤га ¬ ®Ўа Ў®вЄЁ ЇаҐалў Ё©. ‚ ЇаЁжЁЇҐ Їа®жҐ¤га ®Ўа в®Ј®
ўл§®ў ¬®¦Ґв ўҐагвм ¤аҐб NCB, Ї® Є®в®а®¬г § ўҐаиҐ ®ЇҐа жЁп,
® «гзиҐ Ўг¤Ґв, Ґб«Ё Є Є ¦¤®¬г NCB ЇаЁўп§ вм бў®о Їа®жҐ¤гаг,
гбв ў«Ёў ойго д« Ј § ўҐаиҐЁп ®ЇҐа жЁЁ.
Procedure PostProc; Interrupt;
Begin
Flag := 1;
End {PostProc};
я2€ЁжЁ «Ё§ жЁп
€ЁжЁ «Ё§ жЁп ўЄ«оз Ґв ў бҐЎп Їа®ўҐаЄг «ЁзЁп ЁвҐа䥩б
NetBIOS Ё ¤®Ў ў«ҐЁҐ Ё¬ҐЁ бв жЁЁ ў в Ў«Ёжг «®Є «мле Ё¬Ґ.
‡¤Ґбм 㬥бв® бЄ § вм ® ЇаЁжЁЇҐ ¤аҐб жЁЁ ў Їа®в®Є®«Ґ
NetBIOS.
„«п ¤аҐб жЁЁ ЁбЇ®«м§говбп Ё¬Ґ , ЇаҐ¤бв ў«пойЁҐ б®Ў®©
бва®ЄЁ бЁ¬ў®«®ў а §¬Ґа®¬ ¤® 16 Ў ©в®ў.
„«п ¤®Ў ў«ҐЁп Ё¬ҐЁ ¤® ЇҐаҐ¤ вм бва®Єг б Ё¬ҐҐ¬ ў Ї®«Ґ
OurName NCB Ё ўл¤ вм Є®¬ ¤г "„®Ў ўЁвм Ё¬п", в.Ґ. ўл§ў вм
¤а ©ўҐа. „а ©ўҐа ўлЇ®«пҐв Є®¬ ¤г Ё ў®§ўа й Ґв в Є §лў Ґ¬л©
"®¬Ґа Ё¬ҐЁ", Є®в®ал© ў ¤ «мҐ©иЁе ®ЇҐа жЁпе ЁбЇ®«м§гҐвбп Є Є
б®ЎбвўҐл© ¤аҐб.
(‚ Їа®в®Є®«Ґ IPX, ЇаЁ¬Ґа, ЁЁжЁ «Ё§ жЁп § Є«оз Ґвбп ў
®вЄалвЁЁ "б®ЄҐв " - ҐЄ®ҐЈ® ўЁавг «м®Ј® а §кҐ¬ , зҐаҐ§ Є®в®ал©
®бгйҐбвў«пҐвбп ®ЇҐа жЁп ®Ў¬Ґ ¤ л¬Ё.)
Џ®б«Ґ ¤®Ў ў«ҐЁп «®Є «м®Ј® Ё¬ҐЁ Є ¦¤®© Ё§ бв жЁ© ¬®¦Ґв
Ўлвм з в ®Ў¬Ґ ¤ л¬Ё.
я2ЋЎ¬Ґ ¤ л¬Ё
ЋЎ¬Ґ ¤ л¬Ё ®бгйҐбвў«пҐвбп б Ї®¬®ймо Є®¬ ¤ "ЇҐаҐ¤ вм
¤ в Ја ¬¬г" Ё "ЇаЁпвм ¤ в Ја ¬¬г".
„«п ЇҐаҐ¤ зЁ ¤ ле Ј®в®ўЁвбп NCB, ў Є®в®а®¬ гЄ § л:
- Є®¤ Є®¬ ¤л;
- ¤аҐб Ё а §¬Ґа ЎгдҐа б ¤ л¬Ё;
- ®¬Ґа Ё¬ҐЁ;
- Ё¬п бв жЁЁ § 票п;
- ¤аҐб Їа®жҐ¤гал ®Ўа в®Ј® ўл§®ў .
„ «ҐҐ Їа®Ё§ў®¤Ёвбп ўл§®ў ¤а ©ўҐа , Є®в®а®¬г ЇҐаҐ¤ ¤аҐб
нв®Ј® NCB.
„«п ЇаЁҐ¬ ¤ ле Ј®в®ўЁвбп NCB, ў Є®в®а®¬ гЄ § л:
- Є®¤ Є®¬ ¤л;
- ¤аҐб Ё а §¬Ґа ЎгдҐа ¤«п ЇаЁҐ¬ ¤ ле;
- ®¬Ґа Ё¬ҐЁ;
- ¤аҐб Їа®жҐ¤гал ®Ўа в®Ј® ўл§®ў .
„ «ҐҐ Їа®Ё§ў®¤Ёвбп ўл§®ў ¤а ©ўҐа , Є®в®а®¬г ЇҐаҐ¤ ¤аҐб
нв®Ј® NCB.
Љ®Ј¤ ®ЇҐа жЁп ЇаЁҐ¬ § Є®зЁвбп, ў Ї®«Ґ CallName Ўг¤Ґв
§ ЇЁб ® Ё¬п бв жЁЁ, ®в Є®в®а®© Ї®«гзҐ ¤ в Ја ¬¬ .
я2„ҐЁЁжЁ «Ё§ жЁп
„ҐЁЁжЁ «Ё§ жЁп § Є«оз Ґвбп ў г¤ «ҐЁЁ Ё¬ҐЁ Ё§ в Ў«Ёжл
«®Є «мле Ё¬Ґ бв жЁЁ.
„«п нв®Ј® Ј®в®ўЁвбп NCB, ў Є®в®а®¬ гЄ § л:
- Є®¤ Є®¬ ¤л;
- г¤ «пҐ¬®Ґ Ё¬п;
- ¤аҐб Їа®жҐ¤гал ®Ўа в®Ј® ўл§®ў .
„ «ҐҐ Їа®Ё§ў®¤Ёвбп ўл§®ў ¤а ©ўҐа , Є®в®а®¬г ЇҐаҐ¤ ¤аҐб
нв®Ј® NCB. (‚ Їа®в®Є®«Ґ IPX ўлЇ®«пҐвбп § ЄалвЁҐ б®ЄҐв .)
…б«Ё Їа®Ја ¬¬ , ўлЇ®«пҐ¬ п ЇҐаҐ¤ о饩 бв жЁЁ, ўл¤ бв
Є®¬ ¤г "ЇҐаҐ¤ вм ¤ в Ја ¬¬г" а миҐ, 祬 Їа®Ја ¬¬ , ўлЇ®«пҐ¬ п
ЇаЁҐ¬®© бв жЁЁ, ўл¤ бв Є®¬ ¤г "ЇаЁпвм ¤ в Ја ¬¬г", в®
ЇҐаҐ¤ п ¤ в Ја ¬¬ Ўг¤Ґв Ї®вҐап . Ѓ®«ҐҐ в®Ј®, ЇаЁҐ¬ п
Їа®Ја ¬¬ "§ ўЁбҐв" ў ®¦Ё¤ ЁЁ ЇаЁҐ¬ .
ЏҐаҐ¤ вм ¤ в Ја ¬¬г
Џђ„ ДДДЕДДДДДДДДДДДДДДДДДДДДД
„ в Ја ¬¬ Ўг¤Ґв Ї®вҐап
ЏаЁпвм ¤ в Ја ¬¬г
ЏђЊ ДДДДДДДЕДДДДДДДДДДДДДДДДД
ЏҐаҐ¤ вм ¤ в Ја ¬¬г
Џђ„ ДДДДДДДДДЕДДДДДДДДДДДДДДД
„ в Ја ¬¬ Ўг¤Ґв ЇаЁпв
ЏаЁпвм ¤ в Ја ¬¬г
ЏђЊ ДДДДДДДЕДДДДДДДДДДДДДДДДД
’.Ґ. §¤Ґбм ўбв ов ⥠¦Ґ ў®Їа®бл бЁеа®Ё§ жЁЁ, зв® Ё ў
⥮ਨ Їа®жҐбб®ў, а бᬮв८© а ҐҐ.
Љ Є бЁеа®Ё§Ёа®ў вм ўлЇ®«ҐЁҐ ¤ўге Їа®Ја ¬¬, ўлЇ®«пойЁебп
а §«Ёзле Є®¬ЇмовҐа е?
‚л¤ ў вм Є®¬ ¤г ЇҐаҐ¤ зЁ, Ґб«Ё ЇаЁҐ¬®© бв®а®Ґ Ґ
ўл¤ Є®¬ ¤ ЇаЁҐ¬ ЎҐбб¬лб«Ґ®.
ђҐиҐЁҐ б®бв®Ёв ў ⮬, зв® Їа®Ја ¬¬ ¤®«¦ Ё¬Ґвм
аеЁвҐЄвгаг ЎҐ§ ®¦Ё¤ Ёп Ё ўбҐЈ¤ 室Ёвмбп б б®бв®пЁЁ ЇаЁҐ¬ .
Ў«® в Є®© Їа®Ја ¬¬л ¬®¦Ґв ўлЈ«п¤Ґвм б«Ґ¤гойЁ¬ ®Ўа §®¬.
Flag := 0;
AddName;
While Flag = 0 Do ; {¤®Ў ў«ҐЁҐ Ё¬ҐЁ § ўҐа襮}
Flag := 0;
ReceiveDatagram;
While True Do Begin
If Flag = 1 Then Begin {ЇаЁҐ¬ § ўҐаиҐ}
Flag := 0;
< Ђ «Ё§ в®Ј®, зв® ЇаЁпв®;
>
ReceiveDatagram; {б®ў з вм ЇаЁҐ¬}
End {If};
< „агЈЁҐ ¤Ґ©бвўЁп Ї® «Ј®аЁв¬г ЇаЁ«®¦ҐЁп;
>
If KeyPressed Then Begin {ЇаЁ¬Ґа ЇҐаҐ¤ зЁ Ё}
‘h := ReadKey; {§ ўҐа襨п а Ў®вл}
Case Ch Of
's' : SendDatagram;
#27 : Break;
Else
End {Case};
End {If};
End {While};
Flag := 0;
DeleteName;
While Flag = 0 Do ; {г¤ «ҐЁҐ Ё¬ҐЁ § ўҐа襮}
Џа®Ја ¬¬®©-бҐаўҐа®¬ ЇаЁпв® §лў вм Їа®Ја ¬¬г, Є®в®а п
Јаг§Ёвбп ЇҐаў®© Ё§ ўбҐе ¤агЈЁе Їа®Ја ¬¬, § ⥬ 室Ёвбп ў
०Ё¬Ґ ®¦Ё¤ Ёп ЇаЁҐ¬ в Є, Є Є нв® Ё§®Ўа ¦Ґ® ўлиҐ.
я26.4. ’а бЇ®авлҐ Є®¬¬гЁЄ жЁ®лҐ Їа®в®Є®«л
ЋЎ¬Ґ ¤ л¬Ё ва бЇ®а⮬ га®ўҐ Ј а вЁагҐв ЇаЁҐ¬
Ї ЄҐв®ў, ЇаЁзҐ¬ ў в®© ¦Ґ ®зҐаҐ¤®бвЁ, зв® Ё ЇҐаҐ¤ з Ї ЄҐв®ў.
„®ЇгбЄ Ґвбп ¬®Ј®Єа в п ЇҐаҐ¤ з Ї ЄҐв ¤® Ї®«г票п
ЄўЁв жЁЁ ® ҐЈ® Їа ўЁ«м®¬ ЇаЁҐ¬Ґ.
„«п ®Ў¬Ґ ¤ л¬Ё ва бЇ®а⮬ га®ўҐ бв жЁ© ᮧ¤ Ґвбп
Є « - «®ЈЁзҐбЄ®Ґ ᮥ¤ЁҐЁҐ ¤ўге бв жЁ©.
ЏаЁ¬Ґа ¬Ё Їа®в®Є®«®ў ва бЇ®ав®Ј® га®ўп пў«повбп б«Ґ¤гойЁҐ:
SPX (Sequenced Packet Protocol) б।л Novell - ¤га®ўҐм
Їа®в®Є®« IPX;
TCP (Transmission Control Protocol) - ¤га®ўҐм Їа®в®Є®«
IP;
NetBIOS - а ҐҐ ®ЇЁб л© Їа®в®Є®« ¬®¦Ґв Ўлвм ЁбЇ®«м§®ў Ё
ва бЇ®а⮬ га®ўҐ га®ўҐ.
ђ Ў®в ва бЇ®а⮬ га®ўҐ вॡгҐв Є ЁЁжЁ «Ё§ жЁЁ,
ўлЇ®«пҐ¬®© бҐвҐў®¬ га®ўҐ, ¤®Ў ўЁвм Їа®жҐ¤гал ᮧ¤ Ёп
Є « , Є ¤ҐЁЁжЁ «Ё§ жЁЁ ¤®Ў ўЁвм Їа®жҐ¤гал а §агиҐЁп Є « .
Ќ ЇаЁ¬Ґа, Ї® Їа®в®Є®«г NetBIOS ЁЁжЁ «Ё§ жЁп ¤®«¦ ўЄ«оз вм
б«Ґ¤гойЁҐ ¤Ґ©бвўЁп:
- Їа®ўҐаЄ «ЁзЁп NetBIOS;
- ¤®Ў ў«ҐЁҐ Ё¬ҐЁ Є в Ў«ЁжҐ «®Є «мле Ё¬Ґ бв жЁЁ;
- ᮧ¤ ЁҐ Є « .
„«п ᮧ¤ Ёп Є « Їа®Ја ¬¬ -бҐаўҐа Ј®в®ўЁв NCB Ё ўл§лў Ґв
дгЄжЁо "Listen", ўлЇ®«ҐЁҐ Є®в®а®© § ўҐаи Ґвбп, Є®Ј¤
Їа®Ја ¬¬ -Є«ЁҐв Ї®б«Ґ Їа®ўҐаЄЁ «ЁзЁп NetBIOS Ё ¤®Ў ў«ҐЁп
Ё¬ҐЁ ўл§®ўҐв дгЄжЁо "Call".
(Ђ «®ЈЁзлҐ дгЄжЁЁ бгйҐбвўгов Ё ў Їа®в®Є®«Ґ SPX.)
‡ ўҐаи пбм, дгЄжЁЁ Listen Ё Call, Є ¦¤ п бў®Ґ© бв®а®Ґ,
ў®§ўа й ов ў NCB ў Ї®«Ґ LocalSessionNumber ®¬Ґа Є « ,
ЇаЁбў®Ґл© Є®¬¬гЁЄ жЁ®®© б।®©. ќв®в ®¬Ґа ЁбЇ®«м§гҐвбп ЇаЁ
Ї®б«Ґ¤гойЁе ®ЇҐа жЁпе ®Ў¬Ґ ¤ л¬Ё.
„ҐЁЁжЁ «Ё§ жЁЁ, ®ЇЁб ®© бҐвҐў®¬ га®ўҐ, ЇаҐ¤иҐбвўгҐв
§ ЄалвЁҐ Є « ва бЇ®а⮬ га®ўҐ.
„«п нв®Ј® Ј®в®ўЁвбп NCB, ў Є®в®а®¬ гЄ § «®ЈЁзҐбЄЁ© ®¬Ґа
§ Єалў Ґ¬®Ј® Є « , Ё ўл§лў Ґвбп дгЄжЁп "HangUp".
Џ®б«Ґ § ЄалвЁп Є « г¤ «пҐвбп Ё¬п бв жЁЁ Ё Їа®Ја ¬¬
§ ўҐаи Ґв бў®о а Ў®вг.
ЏҐаҐ¤ з Ё ЇаЁҐ¬ ¤ ле ®бгйҐбвў«повбп б Ї®¬®ймо ўл§®ў
бЇҐжЁ «мле дгЄжЁ© Send Ё Receive, ў ЇаЁжЁЇҐ, «®ЈЁз®
ЇҐаҐ¤ зҐ Ё ЇаЁҐ¬г га®ўҐ ¤ в Ја ¬¬.
Ќ® бгйҐбвўгов ҐЄ®в®алҐ ®в«ЁзЁп, бўп§ лҐ б бЁеа®Ё§ жЁҐ©.
ЏаЁ ᮧ¤ ЁЁ Є « гбв ў«Ёў овбп ўаҐ¬Ґ в ©¬ гв , Ї®
ЁбвҐзҐЁо Є®в®але § ўҐаи овбп ®ЇҐа жЁЁ ЇаЁҐ¬ Ё ЇҐаҐ¤ зЁ ¤ ле.
ЏаЁзҐ¬, Ґб«Ё ЇаЁ ®ЇҐа жЁЁ ЇаЁҐ¬ ў вҐзҐЁҐ в ©¬ гв Ґ Ўг¤Ґв
ЇаЁпв Ў«®Є, ЇаЁ¬Ґа, Ї®в®¬г, зв® Їа®Ја ¬¬ ¤агЈ®© бв жЁЁ Ґ
ўл§лў « ®ЇҐа жЁо ЇҐаҐ¤ зЁ Ў«®Є , в® ®ЇҐа жЁп ЇаЁҐ¬
§ Є зЁў Ґвбп Ї® ЁбвҐзҐЁо ўаҐ¬ҐЁ ®¦Ё¤ Ёп б® бЇҐжЁ «мл¬ Є®¤®¬
®иЁЎЄЁ. Ќ® нв® Ґ ®Ї б п бЁвг жЁп, в.Є. Ў«®Є Ґ ЇаЁпв Ї®в®¬г,
зв® ® Ё Ґ ЇҐаҐ¤ ў «бп.
Ќ® Ґб«Ё ў вҐзҐЁҐ в ©¬ гв ®ЇҐа жЁп Send Ґ ᬮЈ« ЇҐаҐ¤ вм
Ў«®Є, Ї®в®¬г зв® ¤агЈ®© бв®а®Ґ Ґ ўл§ў ®ЇҐа жЁп Receive,
в® нв ®ЇҐа жЁп Send § Є зЁў Ґвбп б в Є®© ®иЁЎЄ®©, зв® Ї®б«Ґ
нв®Ј® ¤ «мҐ©и п ЇҐаҐ¤ з бв ®ўЁвбп Ґў®§¬®¦®©, в.Є. аги Ґвбп
Їа®в®Є®« Є « (®зҐаҐ¤®бвм ¤®бв ўЄЁ Ў«®Є®ў).
•®вп ўл§®ў ®ЇҐа жЁЁ Send Їа®Ја ¬¬®© ®¤®© бв жЁЁ ¬®¦Ґв Ўлвм
⥯Ґам Їа®Ё§ўҐ¤Ґ згвм а миҐ, 祬 ўл§®ў ®ЇҐа жЁЁ Receive
Їа®Ја ¬¬®© ¤агЈ®© бв жЁЁ.
‘вагЄвга Їа®Ја ¬¬л, ®бгйҐбвў«по饩 ®Ў¬Ґ Ї® ва бЇ®а⮬г
Є «г, ¬®¦Ґв ўлЈ«п¤Ґвм б«Ґ¤гойЁ¬ ®Ўа §®¬:
Flag := 0;
AddName;
While Flag = 0 Do ; {¤®Ў ў«ҐЁҐ Ё¬ҐЁ § ўҐа襮}
Flag := 0;
Listen; {¤«п бҐаўҐа , § Јаг¦ Ґ¬®Ј® ЇҐаўл¬}
Call; {¤«п Є«ЁҐв , § Јаг¦ Ґ¬®Ј® ўв®ал¬}
While Flag = 0 Do ; {ᮧ¤ ЁҐ Є « § ўҐа襮}
Flag := 0;
Receive;
While True Do Begin
If Flag = 1 Then Begin {ЇаЁҐ¬ § ўҐаиҐ}
Flag := 0;
<
Ђ «Ё§ в®Ј®, зв® ЇаЁпв®;
>
Receive; {б®ў з вм ЇаЁҐ¬}
End {If};
<
„агЈЁҐ ¤Ґ©бвўЁп Ї® «Ј®аЁв¬г ЇаЁ«®¦ҐЁп;
>
If KeyPressed Then Begin {ЇаЁ¬Ґа ЇҐаҐ¤ зЁ Ё}
‘h := ReadKey; {§ ўҐа襨п а Ў®вл}
Case Ch Of
's' : Send;
#27 : Break;
Else
End {Case};
End {If};
End {While};
Flag := 0;
HangUp;
While Flag = 0 Do ; {§ ЄалвЁҐ Є « § ўҐа襮}
Flag := 0;
DeleteName;
While Flag = 0 Do ; {г¤ «ҐЁҐ Ё¬ҐЁ § ўҐа襮}
Љ ЇаЁўҐ¤Ґл¬ Їа®Ја ¬¬ ¬ б«Ґ¤гҐв ®в®бЁвмбп Є Є Є
да Ј¬Ґв ¬. ‚ Ёе Ґ гзЁвлў овбп ҐЄ®в®алҐ в®Є®бвЁ, ЇаЁ¬Ґа,
Ї®ЇлвЄ ўлЇ®«Ёвм ®ЇҐа жЁо б NCB, ¤«п Є®в®а®Ј® Ґ § ўҐаиҐ
ЇаҐ¤л¤гй п ®ЇҐа жЁп, ЇаЁўҐ¤Ґв Є ®иЁЎЄҐ.
’Ґ¬ Ґ ¬ҐҐҐ, ¬л а бᬮв५Ё ў®Їа®бл Є®¬¬гЁЄ жЁ© бҐвҐў®¬
Ё ва бЇ®а⮬ га®ўпе, ᤥ« ў ЄжҐв Їа®Ў«Ґ¬Ґ бЁеа®Ё§ жЁЁ
Їа®Ја ¬¬.
„ «ҐҐ а бᬮваЁ¬ Є®¬¬гЁЄ жЁЁ Ў®«ҐҐ ўлб®ЄЁе га®ўпе
¬®¤Ґ«Ё OSI.
Њ®¤Ґ«Ё, а бᬮваҐлҐ ¬Ё ў Ї®¤а §¤Ґ«Ґ 3.10 ў Є зҐб⢥
ЇаЁ¬ЁвЁў®ў п¤а , ¬®Ј«Ё Ўл Ўлвм а бᬮваҐл ¬Ё ў ¤ ®¬
Ї®¤а §¤Ґ«Ґ ў Є зҐб⢥ б।бвў Є®¬¬гЁЄ жЁ© га®ўпе, Ў®«ҐҐ
ўлб®ЄЁе, 祬 ва бЇ®авл©.
Ќ® в Є Є Є ®Ё 㦥 а бᬮваҐл ¬Ё, в® §¤Ґбм ¬л
Ї®§ Є®¬Ё¬бп Ґ б ¬®¤Ґ«п¬Ё ®Ў¬Ґ ¤ ле ¬Ґ¦¤г Їа®жҐбб ¬Ё, б®
бЇ®б®Ў ¬Ё ®Ў¬Ґ ¤ л¬Ё ¬Ґ¦¤г ЇаЁ«®¦ҐЁп¬Ё ў ॠ«мле
®ЇҐа жЁ®ле б। е.
Љ в ЄЁ¬ бЇ®б®Ў ¬ ®вҐбҐ¬ б«Ґ¤гойЁҐ:
- ®Ў¬Ґ ¤ л¬Ё зҐаҐ§ Clipboard;
- ®Ў¬Ґ ¤ л¬Ё Ї®б।бвў ¬ DDE вҐе®«®ЈЁЁ;
- ®Ў¬Ґ ¤ л¬Ё Ї®б।бвў ¬ OLE вҐе®«®ЈЁЁ.
Ќ бҐвҐў®¬ га®ўҐ ®Ў¬Ґ Їа®Ё§ў®¤Ёвбп ЎҐ§ Ї®¤вўҐа¦¤ҐЁп б
Ї®¬®ймо бвагЄвга ¤ ле, §лў Ґ¬ле ¤ в Ја ¬¬ ¬Ё.
ЏҐаҐ¤ з ЎҐ§ Ї®¤вўҐа¦¤ҐЁп ®§ з Ґв, зв® Ї®бл« п ¤ в Ја ¬¬л,
ЇҐаҐ¤ ой п бв®а® Ґ ¬®¦Ґв Ўлвм 㢥ॠ, зв® нвЁ ¤ в Ја ¬¬л
Ўг¤гв ЇаЁпвл, ¤ ҐйҐ Ё ў в®© ¦Ґ б ¬®© Ї®б«Ґ¤®ў ⥫м®бвЁ, Є Є®©
Ўл«Ё Ї®б« л.
Љ ЁЎ®«ҐҐ а бЇа®бва Ґл¬ Їа®в®Є®« ¬ бҐвҐў®Ј® га®ўп
®в®бпвбп б«Ґ¤гойЁҐ Їа®в®Є®«л:
IPX (Internetwork Packet Exchange) б।л Novell, ¤® 70%
бҐвҐ© ॠ«Ё§гов Їа®в®Є®«л нв®© б।л. ” ЄвЁзҐбЄЁ бв ¤ авл©
Їа®в®Є®«.
IP (Internet Protocol) ЁбЇ®«м§гҐвбп ў а §«Ёзле
ўлзЁб«ЁвҐ«мле б। е. ЋзҐм иЁа®Є® а бЇа®бва Ґл© Їа®в®Є®«.
€бв®аЁп ҐЈ® а бЇа®бва ҐЁп Ё¤Ґв ®в бҐвҐ© UNIX.
NetBIOS Ї®¤¤Ґа¦Ёў Ґвбп ў бҐвпе IBM, Novell, Microsoft.
Ћб®ЎҐ® Ї®Їг«пॠў бҐвпе IBM.
ЌҐЇ®б।б⢥® ЇҐаҐ¤ зг Ё ЇаЁҐ¬ Ёд®а¬ жЁЁ ®бгйҐбвў«пов
бҐвҐўлҐ Є авл, гбв ®ў«ҐлҐ ў Є®¬ЇмовҐаҐ.
ЏаЁЄ« ¤®© Їа®Ја ¬¬Ґ Ґ Ґ®Ўе®¤Ё¬®бвЁ а Ў®в вм б бҐвҐў®©
Є ав®© Їап¬го. ђ Ў®в ®бгйҐбвў«пҐвбп зҐаҐ§ бЇҐжЁ «млҐ
Їа®Ја ¬¬л-¤а ©ўҐал.
„«п ўл§®ў ¤а ©ўҐа б। ЇаҐ¤®бв ў«пҐв бЇҐжЁ «мл©
Їа®Ја ¬¬л© ЁвҐадҐ©б ў ўЁ¤Ґ ЇаҐалў Ёп Ё«Ё ¤аҐб в®зЄЁ ўе®¤ ў
¤а ©ўҐа.
‚ ॣЁбвал § ЇЁблў овбп ¤ лҐ б®Ј« б® Їа®в®Є®« , § ⥬
ўл§лў Ґвбп 㦮Ґ ЇаҐалў ЁҐ Ё«Ё Їа®жҐ¤га .
Џа®Ја ¬¬ Ґ д®а¬ЁагҐв Ї ЄҐвл, Є®в®алҐ ЇҐаҐ¤ овбп
ҐЇ®б।б⢥® ў Є «. ќвЁ Ї ЄҐвл д®а¬ЁагҐв Є®¬¬гЁЄ жЁ® п
б। , Ё¬Ґ®, ¤а ©ўҐа. Ќ® ® д®а¬ЁагҐв Ёе ®б®ўҐ
Ёд®а¬ жЁЁ, ЇаҐ¤®бв ў«пҐ¬®© ЇаЁЄ« ¤®© Їа®Ја ¬¬®©.
€д®а¬ жЁп ¤а ©ўҐа㠯।®бв ў«пҐвбп ў ўЁ¤Ґ бвагЄвгал ¤ ле,
§лў Ґ¬®©, ®Ўлз®, "гЇа ў«пойЁ© Ў«®Є".
‚ гЇа ў«пойЁ© Ў«®Є ўе®¤Ёв:
- ¤аҐб п Ёд®а¬ жЁп;
- е а ЄвҐа Є®¬ ¤л;
- ¤аҐб ЎгдҐа®ў ¤ ле;
- १г«мвЁагойЁҐ Ї®«п.
„а ©ўҐа зЁв Ґв ᮤҐа¦Ё¬®Ґ гЇа ў«по饣® Ў«®Є , ўлЇ®«пҐв
ЇаҐ¤ЇЁб лҐ ¤Ґ©бвўЁп Ё ў®§ўа й Ґв १г«мв в ўлЇ®«ҐЁп ®ЇҐа жЁЁ.
ђ Ў®в ЇаЁЄ« ¤®© Їа®Ја ¬¬л, ®бгйҐбвў«по饩 ®Ў¬Ґ Ї® бҐвЁ,
ᮤҐа¦Ёв б«Ґ¤гойЁҐ вЁЇ®ўлҐ нв Їл:
1) ЁЁжЁ «Ё§ жЁп;
2) ®Ў¬Ґ ¤ л¬Ё;
3) ¤ҐЁЁжЁ «Ё§ жЁп.
• а ЄвҐа 1)-Ј® Ё 3)-Ј® нв Ї®ў ®ЇаҐ¤Ґ«пҐвбп ўЁ¤®¬ Їа®в®Є®« .
ђ бᬮваЁ¬ ў Є зҐб⢥ ЇаЁ¬Ґа Є®¬Ї®Ґвл ЇаЁЄ« ¤ле
Їа®Ја ¬¬, ®Ў¬ҐЁў ойЁебп ¤ л¬Ё Ї® Їа®в®Є®«г NetBIOS. ЋЎйЁҐ Ё¤ҐЁ
®бв гвбп в ЄЁ¬Ё ¦Ґ Ё ЇаЁ ¤агЈЁе Їа®в®Є®« е.
Ћб®ў®© Їа®в®Є®« NetBIOS пў«пҐвбп бвагЄвга ¤ ле,
§лў Ґ¬ п NCB - Network Control Block. (‚ Їа®в®Є®«Ґ IPX Ґбвм
бвагЄвга , б«г¦ й п ⥬ ¦Ґ жҐ«п¬ ECB - Event Control Block.)
Џ бЄ «ҐўбЄ®Ґ ®ЇЁб ЁҐ бвагЄвгал NCB Ё¬ҐҐв б«Ґ¤гойЁ© ўЁ¤:
Type
TNCB = Record
Cmd : Byte; {command code}
CCode : Byte; {error code}
LocalSessionNumber : Byte; {session number}
NetworkNameNumber : Byte; {name number}
Buffer : Pointer; {data buffer pointer}
Size : Word; {data buffer size}
CallName : Array[0..15] Of Char;
OurName : Array[0..15] Of Char;{self name}
ReceiveTimeout : Byte; {receive timeout}
SendTimeout : Byte; {send timeout}
PostRoutine : Pointer; {post-procedure address}
AdapterNumber : Byte; {adapter number}
FinalCCode : Byte; {final error code}
Reserved : Array[0..13] Of Char;{reserved}
End {TNCB};
Cmd - Є®¤ Є®¬ ¤л;
CCode - Є®¤ ®иЁЎЄЁ, ўл¤ ў Ґ¬л© ¤® ўлЇ®«ҐЁп Є®¬ ¤л;
LocalSessionNumber - ®¬Ґа Є « ¤«п ва бЇ®ав®Ј® га®ўп;
NetworkNameNumber - ®¬Ґа Ё¬ҐЁ бв жЁЁ;
Buffer - ¤аҐб ЎгдҐа ¤ ле;
Size - а §¬Ґа ЎгдҐа ¤ ле;
CallName - Ё¬п бв жЁЁ § 票п;
OurName - б®Ўб⢥®Ґ Ё¬п бв жЁЁ;
ReceiveTimeout - ЁвҐаў « ®¦Ё¤ Ёп ўлЇ®«ҐЁп Є®¬ ¤л ЇаЁҐ¬ ;
SendTimeout - ЁвҐаў « ®¦Ё¤ Ёп ўлЇ®«ҐЁп Є®¬ ¤л ЇҐаҐ¤ зЁ;
PostRoutine - ¤аҐб Їа®жҐ¤гал ®Ўа в®Ј® ўл§®ў ;
AdapterNumber - ®¬Ґа бҐвҐў®© Є авл;
FinalCCode - Є®¤ § ўҐаиҐЁп Є®¬ ¤л;
Reserved - १Ґаў ¤«п ўгв२е 楫Ґ© Їа®в®Є®« .
‚ ᮮ⢥вбвўЁҐ б вҐе®«®ЈЁҐ© ®аЈ Ё§ жЁЁ г¤ «Ґ®Ј® ўл§®ў
Їа®жҐ¤га RPC ўбҐ дгЄжЁЁ ¬®Јгв ўлЇ®«пвмбп Є Є ў ०Ё¬Ґ б
®¦Ё¤ ЁҐ¬, в Є Ё ў бЁеа®®¬ ०Ё¬Ґ.
‚ ЇҐаў®¬ б«гз Ґ, ўл§ў ў Їа®жҐ¤гаг ¤а ©ўҐа , Їа®Ја ¬¬
室Ёвбп ў Ґ© ¤® § ўҐаиҐЁп ®ЇҐа жЁЁ.
‚® ўв®а®¬ б«гз Ґ Ё§ ўл§®ў Їа®жҐ¤гал ¤а ©ўҐа гЇа ў«ҐЁҐ
ба §г ¦Ґ ў®§ўа й Ґвбп ў Їа®Ја ¬¬г, ®Ў ®Є®з ЁЁ ®ЇҐа жЁЁ
бўЁ¤ҐвҐ«мбвўгҐв ўл§®ў Є®¬¬гЁЄ жЁ®®© б।®© Їа®жҐ¤гал ®Ўа в®Ј®
ўл§®ў .
Џа®жҐ¤га ®Ўа в®Ј® ўл§®ў ¤®«¦ 㤮ў«Ґвў®апвм вॡ®ў Ёп¬
Є Їа®жҐ¤га ¬ ®Ўа Ў®вЄЁ ЇаҐалў Ё©. ‚ ЇаЁжЁЇҐ Їа®жҐ¤га ®Ўа в®Ј®
ўл§®ў ¬®¦Ґв ўҐагвм ¤аҐб NCB, Ї® Є®в®а®¬г § ўҐаиҐ ®ЇҐа жЁп,
® «гзиҐ Ўг¤Ґв, Ґб«Ё Є Є ¦¤®¬г NCB ЇаЁўп§ вм бў®о Їа®жҐ¤гаг,
гбв ў«Ёў ойго д« Ј § ўҐаиҐЁп ®ЇҐа жЁЁ.
Procedure PostProc; Interrupt;
Begin
Flag := 1;
End {PostProc};
я2€ЁжЁ «Ё§ жЁп
€ЁжЁ «Ё§ жЁп ўЄ«оз Ґв ў бҐЎп Їа®ўҐаЄг «ЁзЁп ЁвҐа䥩б
NetBIOS Ё ¤®Ў ў«ҐЁҐ Ё¬ҐЁ бв жЁЁ ў в Ў«Ёжг «®Є «мле Ё¬Ґ.
‡¤Ґбм 㬥бв® бЄ § вм ® ЇаЁжЁЇҐ ¤аҐб жЁЁ ў Їа®в®Є®«Ґ
NetBIOS.
„«п ¤аҐб жЁЁ ЁбЇ®«м§говбп Ё¬Ґ , ЇаҐ¤бв ў«пойЁҐ б®Ў®©
бва®ЄЁ бЁ¬ў®«®ў а §¬Ґа®¬ ¤® 16 Ў ©в®ў.
„«п ¤®Ў ў«ҐЁп Ё¬ҐЁ ¤® ЇҐаҐ¤ вм бва®Єг б Ё¬ҐҐ¬ ў Ї®«Ґ
OurName NCB Ё ўл¤ вм Є®¬ ¤г "„®Ў ўЁвм Ё¬п", в.Ґ. ўл§ў вм
¤а ©ўҐа. „а ©ўҐа ўлЇ®«пҐв Є®¬ ¤г Ё ў®§ўа й Ґв в Є §лў Ґ¬л©
"®¬Ґа Ё¬ҐЁ", Є®в®ал© ў ¤ «мҐ©иЁе ®ЇҐа жЁпе ЁбЇ®«м§гҐвбп Є Є
б®ЎбвўҐл© ¤аҐб.
(‚ Їа®в®Є®«Ґ IPX, ЇаЁ¬Ґа, ЁЁжЁ «Ё§ жЁп § Є«оз Ґвбп ў
®вЄалвЁЁ "б®ЄҐв " - ҐЄ®ҐЈ® ўЁавг «м®Ј® а §кҐ¬ , зҐаҐ§ Є®в®ал©
®бгйҐбвў«пҐвбп ®ЇҐа жЁп ®Ў¬Ґ ¤ л¬Ё.)
Џ®б«Ґ ¤®Ў ў«ҐЁп «®Є «м®Ј® Ё¬ҐЁ Є ¦¤®© Ё§ бв жЁ© ¬®¦Ґв
Ўлвм з в ®Ў¬Ґ ¤ л¬Ё.
я2ЋЎ¬Ґ ¤ л¬Ё
ЋЎ¬Ґ ¤ л¬Ё ®бгйҐбвў«пҐвбп б Ї®¬®ймо Є®¬ ¤ "ЇҐаҐ¤ вм
¤ в Ја ¬¬г" Ё "ЇаЁпвм ¤ в Ја ¬¬г".
„«п ЇҐаҐ¤ зЁ ¤ ле Ј®в®ўЁвбп NCB, ў Є®в®а®¬ гЄ § л:
- Є®¤ Є®¬ ¤л;
- ¤аҐб Ё а §¬Ґа ЎгдҐа б ¤ л¬Ё;
- ®¬Ґа Ё¬ҐЁ;
- Ё¬п бв жЁЁ § 票п;
- ¤аҐб Їа®жҐ¤гал ®Ўа в®Ј® ўл§®ў .
„ «ҐҐ Їа®Ё§ў®¤Ёвбп ўл§®ў ¤а ©ўҐа , Є®в®а®¬г ЇҐаҐ¤ ¤аҐб
нв®Ј® NCB.
„«п ЇаЁҐ¬ ¤ ле Ј®в®ўЁвбп NCB, ў Є®в®а®¬ гЄ § л:
- Є®¤ Є®¬ ¤л;
- ¤аҐб Ё а §¬Ґа ЎгдҐа ¤«п ЇаЁҐ¬ ¤ ле;
- ®¬Ґа Ё¬ҐЁ;
- ¤аҐб Їа®жҐ¤гал ®Ўа в®Ј® ўл§®ў .
„ «ҐҐ Їа®Ё§ў®¤Ёвбп ўл§®ў ¤а ©ўҐа , Є®в®а®¬г ЇҐаҐ¤ ¤аҐб
нв®Ј® NCB.
Љ®Ј¤ ®ЇҐа жЁп ЇаЁҐ¬ § Є®зЁвбп, ў Ї®«Ґ CallName Ўг¤Ґв
§ ЇЁб ® Ё¬п бв жЁЁ, ®в Є®в®а®© Ї®«гзҐ ¤ в Ја ¬¬ .
я2„ҐЁЁжЁ «Ё§ жЁп
„ҐЁЁжЁ «Ё§ жЁп § Є«оз Ґвбп ў г¤ «ҐЁЁ Ё¬ҐЁ Ё§ в Ў«Ёжл
«®Є «мле Ё¬Ґ бв жЁЁ.
„«п нв®Ј® Ј®в®ўЁвбп NCB, ў Є®в®а®¬ гЄ § л:
- Є®¤ Є®¬ ¤л;
- г¤ «пҐ¬®Ґ Ё¬п;
- ¤аҐб Їа®жҐ¤гал ®Ўа в®Ј® ўл§®ў .
„ «ҐҐ Їа®Ё§ў®¤Ёвбп ўл§®ў ¤а ©ўҐа , Є®в®а®¬г ЇҐаҐ¤ ¤аҐб
нв®Ј® NCB. (‚ Їа®в®Є®«Ґ IPX ўлЇ®«пҐвбп § ЄалвЁҐ б®ЄҐв .)
…б«Ё Їа®Ја ¬¬ , ўлЇ®«пҐ¬ п ЇҐаҐ¤ о饩 бв жЁЁ, ўл¤ бв
Є®¬ ¤г "ЇҐаҐ¤ вм ¤ в Ја ¬¬г" а миҐ, 祬 Їа®Ја ¬¬ , ўлЇ®«пҐ¬ п
ЇаЁҐ¬®© бв жЁЁ, ўл¤ бв Є®¬ ¤г "ЇаЁпвм ¤ в Ја ¬¬г", в®
ЇҐаҐ¤ п ¤ в Ја ¬¬ Ўг¤Ґв Ї®вҐап . Ѓ®«ҐҐ в®Ј®, ЇаЁҐ¬ п
Їа®Ја ¬¬ "§ ўЁбҐв" ў ®¦Ё¤ ЁЁ ЇаЁҐ¬ .
ЏҐаҐ¤ вм ¤ в Ја ¬¬г
Џђ„ ДДДЕДДДДДДДДДДДДДДДДДДДДД
„ в Ја ¬¬ Ўг¤Ґв Ї®вҐап
ЏаЁпвм ¤ в Ја ¬¬г
ЏђЊ ДДДДДДДЕДДДДДДДДДДДДДДДДД
ЏҐаҐ¤ вм ¤ в Ја ¬¬г
Џђ„ ДДДДДДДДДЕДДДДДДДДДДДДДДД
„ в Ја ¬¬ Ўг¤Ґв ЇаЁпв
ЏаЁпвм ¤ в Ја ¬¬г
ЏђЊ ДДДДДДДЕДДДДДДДДДДДДДДДДД
’.Ґ. §¤Ґбм ўбв ов ⥠¦Ґ ў®Їа®бл бЁеа®Ё§ жЁЁ, зв® Ё ў
⥮ਨ Їа®жҐбб®ў, а бᬮв८© а ҐҐ.
Љ Є бЁеа®Ё§Ёа®ў вм ўлЇ®«ҐЁҐ ¤ўге Їа®Ја ¬¬, ўлЇ®«пойЁебп
а §«Ёзле Є®¬ЇмовҐа е?
‚л¤ ў вм Є®¬ ¤г ЇҐаҐ¤ зЁ, Ґб«Ё ЇаЁҐ¬®© бв®а®Ґ Ґ
ўл¤ Є®¬ ¤ ЇаЁҐ¬ ЎҐбб¬лб«Ґ®.
ђҐиҐЁҐ б®бв®Ёв ў ⮬, зв® Їа®Ја ¬¬ ¤®«¦ Ё¬Ґвм
аеЁвҐЄвгаг ЎҐ§ ®¦Ё¤ Ёп Ё ўбҐЈ¤ 室Ёвмбп б б®бв®пЁЁ ЇаЁҐ¬ .
Ў«® в Є®© Їа®Ја ¬¬л ¬®¦Ґв ўлЈ«п¤Ґвм б«Ґ¤гойЁ¬ ®Ўа §®¬.
Flag := 0;
AddName;
While Flag = 0 Do ; {¤®Ў ў«ҐЁҐ Ё¬ҐЁ § ўҐа襮}
Flag := 0;
ReceiveDatagram;
While True Do Begin
If Flag = 1 Then Begin {ЇаЁҐ¬ § ўҐаиҐ}
Flag := 0;
< Ђ «Ё§ в®Ј®, зв® ЇаЁпв®;
>
ReceiveDatagram; {б®ў з вм ЇаЁҐ¬}
End {If};
< „агЈЁҐ ¤Ґ©бвўЁп Ї® «Ј®аЁв¬г ЇаЁ«®¦ҐЁп;
>
If KeyPressed Then Begin {ЇаЁ¬Ґа ЇҐаҐ¤ зЁ Ё}
‘h := ReadKey; {§ ўҐа襨п а Ў®вл}
Case Ch Of
's' : SendDatagram;
#27 : Break;
Else
End {Case};
End {If};
End {While};
Flag := 0;
DeleteName;
While Flag = 0 Do ; {г¤ «ҐЁҐ Ё¬ҐЁ § ўҐа襮}
Џа®Ја ¬¬®©-бҐаўҐа®¬ ЇаЁпв® §лў вм Їа®Ја ¬¬г, Є®в®а п
Јаг§Ёвбп ЇҐаў®© Ё§ ўбҐе ¤агЈЁе Їа®Ја ¬¬, § ⥬ 室Ёвбп ў
०Ё¬Ґ ®¦Ё¤ Ёп ЇаЁҐ¬ в Є, Є Є нв® Ё§®Ўа ¦Ґ® ўлиҐ.
я26.4. ’а бЇ®авлҐ Є®¬¬гЁЄ жЁ®лҐ Їа®в®Є®«л
ЋЎ¬Ґ ¤ л¬Ё ва бЇ®а⮬ га®ўҐ Ј а вЁагҐв ЇаЁҐ¬
Ї ЄҐв®ў, ЇаЁзҐ¬ ў в®© ¦Ґ ®зҐаҐ¤®бвЁ, зв® Ё ЇҐаҐ¤ з Ї ЄҐв®ў.
„®ЇгбЄ Ґвбп ¬®Ј®Єа в п ЇҐаҐ¤ з Ї ЄҐв ¤® Ї®«г票п
ЄўЁв жЁЁ ® ҐЈ® Їа ўЁ«м®¬ ЇаЁҐ¬Ґ.
„«п ®Ў¬Ґ ¤ л¬Ё ва бЇ®а⮬ га®ўҐ бв жЁ© ᮧ¤ Ґвбп
Є « - «®ЈЁзҐбЄ®Ґ ᮥ¤ЁҐЁҐ ¤ўге бв жЁ©.
ЏаЁ¬Ґа ¬Ё Їа®в®Є®«®ў ва бЇ®ав®Ј® га®ўп пў«повбп б«Ґ¤гойЁҐ:
SPX (Sequenced Packet Protocol) б।л Novell - ¤га®ўҐм
Їа®в®Є®« IPX;
TCP (Transmission Control Protocol) - ¤га®ўҐм Їа®в®Є®«
IP;
NetBIOS - а ҐҐ ®ЇЁб л© Їа®в®Є®« ¬®¦Ґв Ўлвм ЁбЇ®«м§®ў Ё
ва бЇ®а⮬ га®ўҐ га®ўҐ.
ђ Ў®в ва бЇ®а⮬ га®ўҐ вॡгҐв Є ЁЁжЁ «Ё§ жЁЁ,
ўлЇ®«пҐ¬®© бҐвҐў®¬ га®ўҐ, ¤®Ў ўЁвм Їа®жҐ¤гал ᮧ¤ Ёп
Є « , Є ¤ҐЁЁжЁ «Ё§ жЁЁ ¤®Ў ўЁвм Їа®жҐ¤гал а §агиҐЁп Є « .
Ќ ЇаЁ¬Ґа, Ї® Їа®в®Є®«г NetBIOS ЁЁжЁ «Ё§ жЁп ¤®«¦ ўЄ«оз вм
б«Ґ¤гойЁҐ ¤Ґ©бвўЁп:
- Їа®ўҐаЄ «ЁзЁп NetBIOS;
- ¤®Ў ў«ҐЁҐ Ё¬ҐЁ Є в Ў«ЁжҐ «®Є «мле Ё¬Ґ бв жЁЁ;
- ᮧ¤ ЁҐ Є « .
„«п ᮧ¤ Ёп Є « Їа®Ја ¬¬ -бҐаўҐа Ј®в®ўЁв NCB Ё ўл§лў Ґв
дгЄжЁо "Listen", ўлЇ®«ҐЁҐ Є®в®а®© § ўҐаи Ґвбп, Є®Ј¤
Їа®Ја ¬¬ -Є«ЁҐв Ї®б«Ґ Їа®ўҐаЄЁ «ЁзЁп NetBIOS Ё ¤®Ў ў«ҐЁп
Ё¬ҐЁ ўл§®ўҐв дгЄжЁо "Call".
(Ђ «®ЈЁзлҐ дгЄжЁЁ бгйҐбвўгов Ё ў Їа®в®Є®«Ґ SPX.)
‡ ўҐаи пбм, дгЄжЁЁ Listen Ё Call, Є ¦¤ п бў®Ґ© бв®а®Ґ,
ў®§ўа й ов ў NCB ў Ї®«Ґ LocalSessionNumber ®¬Ґа Є « ,
ЇаЁбў®Ґл© Є®¬¬гЁЄ жЁ®®© б।®©. ќв®в ®¬Ґа ЁбЇ®«м§гҐвбп ЇаЁ
Ї®б«Ґ¤гойЁе ®ЇҐа жЁпе ®Ў¬Ґ ¤ л¬Ё.
„ҐЁЁжЁ «Ё§ жЁЁ, ®ЇЁб ®© бҐвҐў®¬ га®ўҐ, ЇаҐ¤иҐбвўгҐв
§ ЄалвЁҐ Є « ва бЇ®а⮬ га®ўҐ.
„«п нв®Ј® Ј®в®ўЁвбп NCB, ў Є®в®а®¬ гЄ § «®ЈЁзҐбЄЁ© ®¬Ґа
§ Єалў Ґ¬®Ј® Є « , Ё ўл§лў Ґвбп дгЄжЁп "HangUp".
Џ®б«Ґ § ЄалвЁп Є « г¤ «пҐвбп Ё¬п бв жЁЁ Ё Їа®Ја ¬¬
§ ўҐаи Ґв бў®о а Ў®вг.
ЏҐаҐ¤ з Ё ЇаЁҐ¬ ¤ ле ®бгйҐбвў«повбп б Ї®¬®ймо ўл§®ў
бЇҐжЁ «мле дгЄжЁ© Send Ё Receive, ў ЇаЁжЁЇҐ, «®ЈЁз®
ЇҐаҐ¤ зҐ Ё ЇаЁҐ¬г га®ўҐ ¤ в Ја ¬¬.
Ќ® бгйҐбвўгов ҐЄ®в®алҐ ®в«ЁзЁп, бўп§ лҐ б бЁеа®Ё§ жЁҐ©.
ЏаЁ ᮧ¤ ЁЁ Є « гбв ў«Ёў овбп ўаҐ¬Ґ в ©¬ гв , Ї®
ЁбвҐзҐЁо Є®в®але § ўҐаи овбп ®ЇҐа жЁЁ ЇаЁҐ¬ Ё ЇҐаҐ¤ зЁ ¤ ле.
ЏаЁзҐ¬, Ґб«Ё ЇаЁ ®ЇҐа жЁЁ ЇаЁҐ¬ ў вҐзҐЁҐ в ©¬ гв Ґ Ўг¤Ґв
ЇаЁпв Ў«®Є, ЇаЁ¬Ґа, Ї®в®¬г, зв® Їа®Ја ¬¬ ¤агЈ®© бв жЁЁ Ґ
ўл§лў « ®ЇҐа жЁо ЇҐаҐ¤ зЁ Ў«®Є , в® ®ЇҐа жЁп ЇаЁҐ¬
§ Є зЁў Ґвбп Ї® ЁбвҐзҐЁо ўаҐ¬ҐЁ ®¦Ё¤ Ёп б® бЇҐжЁ «мл¬ Є®¤®¬
®иЁЎЄЁ. Ќ® нв® Ґ ®Ї б п бЁвг жЁп, в.Є. Ў«®Є Ґ ЇаЁпв Ї®в®¬г,
зв® ® Ё Ґ ЇҐаҐ¤ ў «бп.
Ќ® Ґб«Ё ў вҐзҐЁҐ в ©¬ гв ®ЇҐа жЁп Send Ґ ᬮЈ« ЇҐаҐ¤ вм
Ў«®Є, Ї®в®¬г зв® ¤агЈ®© бв®а®Ґ Ґ ўл§ў ®ЇҐа жЁп Receive,
в® нв ®ЇҐа жЁп Send § Є зЁў Ґвбп б в Є®© ®иЁЎЄ®©, зв® Ї®б«Ґ
нв®Ј® ¤ «мҐ©и п ЇҐаҐ¤ з бв ®ўЁвбп Ґў®§¬®¦®©, в.Є. аги Ґвбп
Їа®в®Є®« Є « (®зҐаҐ¤®бвм ¤®бв ўЄЁ Ў«®Є®ў).
•®вп ўл§®ў ®ЇҐа жЁЁ Send Їа®Ја ¬¬®© ®¤®© бв жЁЁ ¬®¦Ґв Ўлвм
⥯Ґам Їа®Ё§ўҐ¤Ґ згвм а миҐ, 祬 ўл§®ў ®ЇҐа жЁЁ Receive
Їа®Ја ¬¬®© ¤агЈ®© бв жЁЁ.
‘вагЄвга Їа®Ја ¬¬л, ®бгйҐбвў«по饩 ®Ў¬Ґ Ї® ва бЇ®а⮬г
Є «г, ¬®¦Ґв ўлЈ«п¤Ґвм б«Ґ¤гойЁ¬ ®Ўа §®¬:
Flag := 0;
AddName;
While Flag = 0 Do ; {¤®Ў ў«ҐЁҐ Ё¬ҐЁ § ўҐа襮}
Flag := 0;
Listen; {¤«п бҐаўҐа , § Јаг¦ Ґ¬®Ј® ЇҐаўл¬}
Call; {¤«п Є«ЁҐв , § Јаг¦ Ґ¬®Ј® ўв®ал¬}
While Flag = 0 Do ; {ᮧ¤ ЁҐ Є « § ўҐа襮}
Flag := 0;
Receive;
While True Do Begin
If Flag = 1 Then Begin {ЇаЁҐ¬ § ўҐаиҐ}
Flag := 0;
<
Ђ «Ё§ в®Ј®, зв® ЇаЁпв®;
>
Receive; {б®ў з вм ЇаЁҐ¬}
End {If};
<
„агЈЁҐ ¤Ґ©бвўЁп Ї® «Ј®аЁв¬г ЇаЁ«®¦ҐЁп;
>
If KeyPressed Then Begin {ЇаЁ¬Ґа ЇҐаҐ¤ зЁ Ё}
‘h := ReadKey; {§ ўҐа襨п а Ў®вл}
Case Ch Of
's' : Send;
#27 : Break;
Else
End {Case};
End {If};
End {While};
Flag := 0;
HangUp;
While Flag = 0 Do ; {§ ЄалвЁҐ Є « § ўҐа襮}
Flag := 0;
DeleteName;
While Flag = 0 Do ; {г¤ «ҐЁҐ Ё¬ҐЁ § ўҐа襮}
Љ ЇаЁўҐ¤Ґл¬ Їа®Ја ¬¬ ¬ б«Ґ¤гҐв ®в®бЁвмбп Є Є Є
да Ј¬Ґв ¬. ‚ Ёе Ґ гзЁвлў овбп ҐЄ®в®алҐ в®Є®бвЁ, ЇаЁ¬Ґа,
Ї®ЇлвЄ ўлЇ®«Ёвм ®ЇҐа жЁо б NCB, ¤«п Є®в®а®Ј® Ґ § ўҐаиҐ
ЇаҐ¤л¤гй п ®ЇҐа жЁп, ЇаЁўҐ¤Ґв Є ®иЁЎЄҐ.
’Ґ¬ Ґ ¬ҐҐҐ, ¬л а бᬮв५Ё ў®Їа®бл Є®¬¬гЁЄ жЁ© бҐвҐў®¬
Ё ва бЇ®а⮬ га®ўпе, ᤥ« ў ЄжҐв Їа®Ў«Ґ¬Ґ бЁеа®Ё§ жЁЁ
Їа®Ја ¬¬.
„ «ҐҐ а бᬮваЁ¬ Є®¬¬гЁЄ жЁЁ Ў®«ҐҐ ўлб®ЄЁе га®ўпе
¬®¤Ґ«Ё OSI.
Њ®¤Ґ«Ё, а бᬮваҐлҐ ¬Ё ў Ї®¤а §¤Ґ«Ґ 3.10 ў Є зҐб⢥
ЇаЁ¬ЁвЁў®ў п¤а , ¬®Ј«Ё Ўл Ўлвм а бᬮваҐл ¬Ё ў ¤ ®¬
Ї®¤а §¤Ґ«Ґ ў Є зҐб⢥ б।бвў Є®¬¬гЁЄ жЁ© га®ўпе, Ў®«ҐҐ
ўлб®ЄЁе, 祬 ва бЇ®авл©.
Ќ® в Є Є Є ®Ё 㦥 а бᬮваҐл ¬Ё, в® §¤Ґбм ¬л
Ї®§ Є®¬Ё¬бп Ґ б ¬®¤Ґ«п¬Ё ®Ў¬Ґ ¤ ле ¬Ґ¦¤г Їа®жҐбб ¬Ё, б®
бЇ®б®Ў ¬Ё ®Ў¬Ґ ¤ л¬Ё ¬Ґ¦¤г ЇаЁ«®¦ҐЁп¬Ё ў ॠ«мле
®ЇҐа жЁ®ле б। е.
Љ в ЄЁ¬ бЇ®б®Ў ¬ ®вҐбҐ¬ б«Ґ¤гойЁҐ:
- ®Ў¬Ґ ¤ л¬Ё зҐаҐ§ Clipboard;
- ®Ў¬Ґ ¤ л¬Ё Ї®б।бвў ¬ DDE вҐе®«®ЈЁЁ;
- ®Ў¬Ґ ¤ л¬Ё Ї®б।бвў ¬ OLE вҐе®«®ЈЁЁ.
Соседние файлы в папке Операционные среды АСОИУ