Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我试图通过另一个 Unix 域套接字连接将已建立的连接 Unix 域套接字文件描述符从进程 A 传递到进程 B,但没有运气,尽管传递了一个 tcp 套接字没有问题。这是有原因的还是我做错了什么?两者都通过辅助消息传递
套接字文件描述符(就像常规文件描述符一样)在正确创建它们的进程之外绝对没有意义。当您将 a 发送fd到其他进程时,您只是发送了一堆字节 - 不多也不少。
fd
将工作 fd从一个进程移动到另一个进程的唯一方法是移动到fork()包含fd要传递的进程的进程。
fork()
如果您希望某个进程连接到特定的 Unix 套接字,您应该将一个 unix 套接字文件系统条目名称传递给该进程。接收进程可以正确创建套接字并在之后建立连接。
我不知道为什么您在传递 tcp socket 时没有问题fd。也许如果您发布代码的相关部分,原因就会被揭示。