20.03.2017 Views

Raspberry Pi - Uživatelská příručka

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!