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]].