【问题标题】:Non-atomic message sent over Unix Domain socket with file desriptor. Is FD sent twice?通过带有文件描述符的 Unix 域套接字发送的非原子消息。 FD是否发送了两次?
【发布时间】:2014-03-01 09:51:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: sockets posix file-descriptor unix-socket


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-05-28
      • 2015-05-09
      • 1970-01-01
      • 2015-03-16
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多