11.2.4.2 父进程与子进程间通信
在UNIX下,socketpair()函数对于建立UDS套接字完成进程间通信很有用。它会创建一对连接的套接字,创建子进程之后,可以用来在父进程和子进程之间通信。
import socket
import os
parent,child = socket.socketpair()
pid = os.fork()
if pid:
print('in parent,sending message')
child.close()
parent.sendall(b'ping')
response = parent.recv(1024)
print('response from child:',response)
parent.close()
else:
print('in child, waiting for message')
parent.close()
message = child.recv(1024)
print('message from parent:',message)
child.sendall(b'pong')
child.close()
默认地会创建一个UDS套接字,不过调用者还可以通过传递地址簇,套接字类型,甚至协议选项来指定如何创建套接字。
运行结果: