通过Unix Domain套接字发送的带有文件描述符的非原子消息。 FD被送了两次吗?

时间:2014-03-01 09:51:52

标签: sockets posix file-descriptor unix-socket

我正在开发一个客户端服务器应用程序,其中客户端应用程序向服务器发送不同类型的消息。一种类型的消息由要在进程之间传递的文件描述符组成。

通常在Posix API页面上,找不到有关sendmsg和recvmsg的更多信息。我的问题是,如果发送的消息太大而无法以原子方式发送,是否会为每条消息发送附加的文件描述符,还是只发送第一个消息?

为什么让我感到困惑的是,在连接套接字上,如果消息发送得太快,内核会将消息合并到一起,那么文件描述符(整数)也必须与消息合并。

1 个答案:

答案 0 :(得分:0)

UNIX域套接字支持将文件描述符或进程凭据传递给... UNIX域套接字不支持send(2)MSG_MORE标志。 ...由于历史原因,下面列出的辅助消息类型用...指定通过SOCK_STREAM传递文件描述符或凭证