#python #sockets #networking
Вопрос:
Этот фрагмент кода, скопированный из multiprocessing.connection
, создает сокеты PIPE
через домен Unix с использованием os.socketpair()
. Какова цель этого s1.detach()
здесь? Я проверил документ Python на наличие socket.detach
функции, но все еще не понимаю, как здесь используется функция. Кто-нибудь поможет объяснить?
import socket
from multiprocessing.connection import Connection
def Pipe(duplex=True):
'''
Returns pair of connection objects at either end of a pipe
'''
if duplex:
s1, s2 = socket.socketpair()
s1.setblocking(True)
s2.setblocking(True)
c1 = Connection(s1.detach())
c2 = Connection(s2.detach())
else:
fd1, fd2 = os.pipe()
c1 = Connection(fd1, writable=False)
c2 = Connection(fd2, readable=False)
return c1, c2