Академический Документы
Профессиональный Документы
Культура Документы
WWW.ITEA.UA
www.itea.ua
socket
Низкоуровневая библиотека для сетевого программирования,
основанная на одноименной системной библиотеке BSD/UNIX.
Address family
▪ AF_UNIX
▪ AF_INET (AF_INET6)
▪ AF_BLUETOOTH
www.itea.ua
Socket types
▪ SOCK_STREAM
▪ SOCK_DGRAM
▪ SOCK_RAW
▪ SOCK_RDM
▪ SOCK_SEQPACKET
www.itea.ua
Addressing methods
▪ Unicast
▪ Broadcast
▪ Multicast
▪ Anycast
▪ Geocast
www.itea.ua
socket(AF_INET, SOCK_STREAM)
www.itea.ua
▪ listen([backlog])
▪ accept()
www.itea.ua
▪ recvfrom(bufsize)
▪ send(bytes), sendall(bytes)
▪ recv(bufsize)
▪ close()
www.itea.ua
Socket modes
▪ blocking (default)
▪ nonblocking
▪ timeout
www.itea.ua
Timeouts
▪ setdefaulttimeout(sec)
▪ settimeout(sec)
www.itea.ua
www.itea.ua
Common errors
▪ BlockingIOError (EWOULDBLOCK)
▪ OSError (EADDRINUSE)
▪ ConnectionResetError (ECONNRESET)
▪ TimeoutError (ETIMEDOUT)
▪ ConnectionRefusedError (ECONNREFUSED)
www.itea.ua
Endianness
▪ ntohl
▪ ntohs
▪ htonl
▪ htons
struct
▪ pack(fmt, v1, v2, ...)
▪ pack_into(fmt, buffer, offset, v1, v2, ...)
▪ unpack(fmt, string)
▪ unpack_from(fmt, buffer[, offset=0])
www.itea.ua
Протоколы сериализации
данных
Для еще более сложных сценариев - передача
вложенных структур данных типа dict, list и сложных
кастомных типов - лучше воспользоваться готовыми
протоколами
▪ Protobuf
▪ Thrift
www.itea.ua
tools
▪ ping
▪ traceroute
▪ netcat
▪ netstat