MSWLOGO IN OMREŽJE
Matjaž Zaveršnik, Vladimir Batagelj
Povzetek
Iz MSWLoga lahko z uporabo omrežja komuniciramo z drugimi ljudmi ali računalniki kjerkoli v svetu. Za delo z omrežjem MSWLogo uporablja protokol TCP/IP, na katerem je zgrajen internet. Na računalniku, s katerim se želimo povezati, ne potrebujemo MSWLoga. Lahko se povežemo na vse običajne omrežne storitve, kot so telnet, ftp ali popmail. MSWLogo bi lahko igral tudi vlogo strežnika. Kadar imamo tudi na drugih računalnikih MSWLogo, lahko pošiljamo podatke ali ukaze enemu, nekaterim ali vsem hkrati. Tako lahko rišemo po zaslonih drugih računalnikov ali igramo igre, v katerih sodeluje več igralcev. V prispevku je predstavljena možnost priprave omrežnih izobraževalnih programov v MSWLogu.
Abstract
Networking commands allow MSWLogo to communicate with the rest of the world. MSWLogo uses only one form of networking also known as TCP/IP sockets. Because TCP/IP is primarily what is used to build the Internet, this restriction is not very significant. The computer, we want to connect to, does not need to be running MSWLogo. We can connect also to services such as telnet, ftp or popmail. MSWLogo can also act as a telnet or ftp server. If the other computers run MSWLogo, we can send data or commands to one, several or all of them. We can draw on each others screen or play games that we can all participate in. In the paper we present some interesting educational applications of MSWLogo networking capabilities.
Ključne besede
MSWLogo, omrežje, izobraževalni programi
Key words
MSWLogo, networking, educational software
- Uvod
Večina računalnikov je že povezana v omrežje (stalno ali začasno preko modema). To nam omogoča komunikacijo z drugi ljudmi ali računalniki, ki so lahko kjerkoli v svetu. Za večino otrok so omrežja nekaj čudnega, težko razumljivega. Zato je pomembno, da jim lahko pokažemo, kako je vse skupaj lahko tudi zelo enostavno. Medtem ko se učijo z MSWLogom uporabljati računalnik, jim lahko pokažemo tudi, kako uporabljati ukaze za delo z omrežjem. Zadnje različice MSWLoga že vsebujejo najnujnejše za to potrebne ukaze.
- Ukazi za delo z omrežjem
MSWLogo prinaša deset ukazov za delo z omrežjem. Delo z omrežjem pričnemo z ukazom NetStartUp, končamo pa z ukazom NetShutDown.
Vzpostavitev povezave AB od računalnika A do računalnika B mora biti zahtevana s strani računalnika A in sprejeta na računalniku B. To pomeni, da moramo izvršiti ukaz NetAcceptOn na računalniku B in ukaz NetConnectOn na računalniku A (v tem vrstnem redu).
Oba računalnika lahko pošiljata in sprejemata podatke po takšni povezavi, vendar z različnima naboroma ukazov. Računalnik A lahko z ukazom NetConnectSendValue pošlje podatke računalniku B, z ukazom NetConnectReceiveValue pa prebere podatke, ki jih je poslal računalnik B. Po drugi strani lahko računalnik B z ukazom NetAcceptSendValue pošlje podatke računalniku A, podatke, ki jih je poslal računalnik A, pa prebere z ukazom NetAcceptReceiveValue.
Za prekinitev povezave AB moramo izvršiti ukaza NetConnectOff na računalniku A in NetAcceptOff na računalniku B (v tem vrstnem redu).
V MSWLogu lahko imamo na enem računalniku istočasno največ dve povezavi do drugih računalnikov. Eno povezavo lahko sami zahtevamo, drugo pa le potrdimo, ko se nekdo drug želi povezati na naš računalnik. Zato so edini možni načini za povezavo več računalnikov obroči in poti. Z obroči je veliko lažje delati, ker imajo v obroču vsi računalniki podobno vlogo (vsi imajo svojega predhodnika in naslednika). V primeru poti bi pri prenosu podatkov imeli veliko več težav, ker bi morali vedeti, kje se nahaja kateri računalnik, da bi podatke poslali v pravo smer.
Več računalnikov najhitreje in najlažje povežemo v obroč tako, da na vseh izvršimo ukaza NetStartUp in NetAcceptOn. Šele zatem lahko vzpostavimo povezave z ukazom NetConnectOn. Razbijanje povezav gre na podoben način. Najprej na vseh računalnikih izvršimo ukaz NetConnectOff in nato postopek dokončamo z ukazoma NetAcceptOff in NetShutDown. Tudi potem, ko je obroč računalnikov že sestavljen, lahko še vedno dodajamo nove računalnike ali odstranjujemo obstoječe. Postopka sta teoretično enostavna, izvedba pa je precej zapletena, ker moramo paziti na usklajenost ukazov na posameznih računalnikih.
Čeprav so našteti ukazi skoraj vse, kar potrebujemo za delo z omrežjem, je delo z njimi vse prej kot enostavno. Zato smo razvili knjižnico ukazov, s katerimi delo z omrežjem postane enostavnejše. V njej so ukazi za ustvarjanje obroča, za dodajanje računalnika v obroč, odstranjevanje računalnika iz obroča ter nekateri poizvedbeni ukazi (ime računalnika, ime predhodnika, ime naslednika v obroču, …).
- Programi, ki uporabljajo omrežje
Z uporabo omrežja je v MSWLogu mogoče napisati precej enostavnih programov, s katerimi lahko njihovi uporabniki komunicirajo med sabo, si izmenjujejo podatke ali celo ukaze, ki jih Logo izvrši na drugem računalniku. V vseh primerih računalnike povežemo v obroč (tudi če sta samo dva). Programi za dva uporabnika (pogovor [ chat] , križci in krožci, potapljanje ladjic, …) so enostavnejši, ker nam pri prenosu podatkov ni treba pošiljati imen pošiljatelja in naslovnika. Pošiljamo vedno drugemu računalniku, podatke pa dobivamo od njega. V primeru, ko imamo v obroču več računalnikov (igre za več igralcev, kot so avtomobilske dirke), pa moramo vsakemu poslanemu sporočilu pripeti še naše ime, včasih pa tudi imena naslovnikov (če želimo sporočilo poslati samo nekaterim računalnikom v obroču). Ko takšno sporočilo potuje naokoli po obroču, lahko vsak računalnik izve, kdo ga pošilja in komu je namenjeno. Ime pošiljatelja je potrebno tudi zato, da se sporočilo ustavi, ko pride po obroču naokrog (ko ga dobi pošiljatelj nazaj).
Omenjene igre in knjižnica ukazov so prosto dostopni na naslovu
http://www.educa.fmf.uni-lj.si/Logo/Examples/WWW/
- Običajne omrežne storitve
Z MSWLogom lahko uporabljamo tudi običajne omrežne storitve, kot so telnet, ftp in popmail. V tem primeru moramo vzpostaviti povezavo do ustreznega strežnika, ki je že pripravljen sprejeti novo povezavo. Zato nam ni treba čakati, da bo strežnik izvršil ukaz, podoben ukazu NetAcceptOn.
Če želimo poslati elektronsko pošto, moramo uporabiti protokol SMTP, ki je opisan v RFC821. Za povezavo moramo uporabiti vrata številka 25, ki so zasedena za ta protokol.
to sendmail :server :from :to :subject :message
netstartup
show netconnecton :server 25 [] [] wait 200
show netconnectsendvalue sentencetoword (se
"HELO (word :server "\nMAIL)
"FROM: (word "< :from ">\nRCPT)
"TO: (word "< :to ">\nDATA\nSubject:)
(word (sentencetoword :subject) "\n\n
sentencetoword :message "\n.\nQUIT\n))
wait 200 netshutdown
end
to sentencetoword :se
if emptyp :se [output " ]
if equalp count :se 1 [output first :se]
output (word first :se "\ sentencetoword bf :se)
endUkaz sendmail potrebuje pet parametrov: ime strežnika SMTP, s katerim se želimo povezati, elektronski naslov pošiljatelja, elektronski naslov prejemnika, naslov sporočila in sporočilo. Da bi bil ukaz čimbolj preprost, se z morebitnimi napakami pri ustvarjanju povezav in prenosu sporočila ne ukvarja. Predelano sporočilo, ki ustreza protokolu SMTP, pošljemo z ukazom NetConnectSendValue. Zelo pomembno je, da je poslano sporočilo beseda, ne pa stavek (seznam besed), ker odvečnih oglatih oklepajev ne smemo pošiljati. To je doseženo z uporabo ukaza sentencetoword, ki seznam besed predela v besedo.
- Zaključek
Z uporabo ukazov, ki jih ponuja MSWLogo za delo z omrežjem, lahko naredimo preprost uvod v delo z omrežjem, premeren tudi za učence osnovnih šol. Pripravimo si lahko okolja, ki vsebujejo osnovne ukaze za povezovanje računalnikov in pošiljanje sporočil, ki jih potem uporabimo kot osnovo pri pisanju zahtevnejših programov.
Literatura
http://www.softronix.com/logo.html