You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
ČÁST III Programování a hackování<br />
Příklad 4: Jazyk Python a síťová konektivita<br />
Zatím jste se naučili, jak lze pomocí jazyka Python psát samostatné programy. Tento jazyk<br />
však umožňuje vytvářet i programy, které komunikují s vnějším světem prostřednictvím síťového<br />
připojení počítače. Další příklad, který napsal Tom Hudson, nabízí stručný nástin<br />
těchto možností. Jedná se o nástroj na sledování uživatelů, kteří jsou připojeni ke kanálu IRC<br />
(Internet Relay Chat).<br />
Jako obvykle vytvořte nový projekt v prostředí IDLE nebo textovém editoru a zadejte řádek<br />
shebang spolu s komentářem, který bude popisovat účel programu:<br />
#!/usr/bin/env python<br />
# Kontrola kanalu IRC, pro knihu ↩<br />
<strong>Raspberry</strong> <strong>Pi</strong> Uzivatelska prirucka, napsal Tom Hudson<br />
Dále pomocí následujícího řádku importujte moduly, které program potřebuje – sys, socket<br />
a time:<br />
import sys, socket, time<br />
Moduly sys a time jste již použili v předchozím programu Had s malinou, ale s modulem<br />
socket jste zatím nepracovali. Modul socket umožňuje v jazyku Python otevírat, zavírat, číst<br />
a zapisovat síťové sokety. Programy jazyka Python tak získávají základní síťové možnosti. Právě<br />
modul socket dovoluje, aby se tento ukázkový program připojil ke vzdálenému serveru IRC.<br />
Tento program ke své činnosti potřebuje určité konstanty. Konstanty se podobají proměnným<br />
v tom, že jim lze přiřadit hodnoty. Na rozdíl od proměnných by se však hodnoty konstant neměly<br />
měnit. Kvůli rozlišení konstant a proměnných se doporučuje celé názvy konstant zadávat<br />
velkými písmeny. Díky tomu je možné na první pohled poznat, zda určitá část kódu pracuje<br />
s konstantou nebo proměnnou. Zadejte do programu tyto dva řádky:<br />
RPL_NAMREPLY = ‚353‘<br />
RPL_ENDOFNAMES = ‚366‘<br />
Jedná se o stavové kódy IRC, kterými server informuje o dokončení určité operace. Na základě<br />
uvedených kódů může program zjistit, zda ze serveru IRC přijal požadovaný seznam jmen.<br />
V dalším kroku zadejte následující řádky, abyste nastavili proměnné pro připojení serveru:<br />
irc = {<br />
‚hostitel‘ : ‚chat.freenode.net‘,<br />
‚port‘ : 6667,<br />
‚kanal‘ : ‚#raspiuserguide‘,<br />
‚intervaljmen‘ : 5<br />
}<br />
První řádek požádá jazyk Python, aby vytvořil datový typ dict. Tento typ (zkratka slova dictionary,<br />
tj. slovník) umožňuje do jedné hlavní proměnné – v tomto případě s názvem irc –<br />
uložit více proměnných. Na jednotlivé proměnné lze pak odkazovat v dalších částech programu.<br />
Program by sice bylo možné napsat i bez ukládání proměnných do datových typů dict,<br />
166