Tento oddíl demonstruje použití API //BSD Sockets// na dvou velmi jednoduchých programech v jazyku Python verze 2.2.1 nebo vyšší. Programy realizují nespojovanou komunikaci pomocí IPv6/UDP: Po inicializaci soketu běží oba v nekonečné smyčce. Vysílač vysílá každou vteřinu pozdravný řetězec a přijímač jej po obdržení vypíše na terminál spolu s adresou uzlu, který jej poslal. Oba programy je nutno ukončit tvrdě pomocí ''Ctrl-C''. ====== Vysílač ====== from socket import * import time peer = "www.cesnet.cz" port = 54321 af,styp,proto,cn,sa = getaddrinfo(peer, port, AF_INET6, SOCK_DGRAM)[0] s = socket(af,styp,proto) while 1: s.sendto("Ahoj!", sa) time.sleep(1) ====== Přijímač ====== from socket import * import time maxlen = 512 port = 54321 af,styp,proto,cn,sa = getaddrinfo(None, port, AF_INET6, SOCK_DGRAM, 0, AI_PASSIVE)[0] s = socket(af,styp,proto) s.bind(sa) while 1: recv = s.recvfrom(maxlen) print "Node", recv[1][0], "said:", recv[0] ====== Poznámky ====== Povšimněme si, jak jazyk Python programátora osvobozuje od řady technických detailů (typy proměnných, dosazování implicitních hodnot funkčních argumentů atd.) a také jak celkem přirozeně využívá své objektové konstrukce. Na druhou stranu, v ukázce pro přehlednost zcela pomíjíme ošetřování chyb, k nimž může za běhu dojít. To lze však v Pythonu také elegantně realizovat pomocí programových výjimek //(exceptions)//. Další příklady použití //BSD Sockets// v Pythonu jsou uvedeny v manuálu [[http://docs.python.org/library/|Python Library Reference]].