все Python 3socketфункция
socket.socketpair()
создание сокетов
Создаёт пару уже соединённых друг с другом сокетов — канал внутри программы без сети и без занятых портов.
Синтаксис
a, b = socket.socketpair(family=AF_UNIX, type=SOCK_STREAM, proto=0)
Лучший способ поупражняться с сокетами и тестировать сетевой код: не нужен ни сервер, ни порт, ни accept(). На Unix пара по умолчанию AF_UNIX, на Windows — эмуляция через AF_INET на 127.0.0.1. Закрывать нужно обе половины. recv() на пустом сокете ждёт вечно — в тестах ставьте settimeout(), тогда вместо зависания будет TimeoutError.
Примеры
import socket
a, b = socket.socketpair()
with a, b:
a.sendall(b'ping')
print(b.recv(1024)) # → b'ping'
b.settimeout(0.1)
try:
b.recv(1024)
except TimeoutError:
print('нечего читать') # → нечего читать
import socket
a, b = socket.socketpair()
print(a.family.name) # → ? AF_UNIX (AF_INET на Windows)
a.close()
print(b.recv(1024)) # → b'' — другая сторона закрыта
b.close()
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности