1

我试图通过另一个 Unix 域套接字连接将已建立的连接 Unix 域套接字文件描述符从进程 A 传递到进程 B,但没有运气,尽管传递了一个 tcp 套接字没有问题。这是有原因的还是我做错了什么?两者都通过辅助消息传递

4

1 回答 1

0

套接字文件描述符(就像常规文件描述符一样)在正确创建它们的进程之外绝对没有意义。当您将 a 发送fd到其他进程时,您只是发送了一堆字节 - 不多也不少。

将工作 fd从一个进程移动到另一个进程的唯一方法是移动到fork()包含fd要传递的进程的进程。

如果您希望某个进程连接到特定的 Unix 套接字,您应该将一个 unix 套接字文件系统条目名称传递给该进程。接收进程可以正确创建套接字并在之后建立连接。

我不知道为什么您在传递 tcp socket 时没有问题fd。也许如果您发布代码的相关部分,原因就会被揭示。

于 2012-04-30T18:29:40.190 回答