gpt4 book ai didi

linux - 何时为客户端-服务器 IPC 使用基于 Fifo 的套接字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:17 29 4
gpt4 key购买 nike

现在查看代码一段时间后,我发现大多数编码人员都使用套接字进行 IPC over Pipes(或者具体来说是 FIFO)。

考虑到只有一个客户端和一个服务器,在套接字上使用 FIFO 不是更好吗?请在这方面教育我。

最佳答案

FIFO 具有以下优点:

  • 如果数据 len 小于 PIPE_BUF,它们对于写入是原子的
  • splice 几乎保证与 SPLICE_F_MOVE 一起工作(没有用户空间数据复制内核将在管道之间移动数据)
  • 与套接字相比,它们更容易设置

但另一方面,它是单向的,即您很可能需要 2 个独立的 fifo:

  • 用于将数据从客户端写入服务器
  • 用于将数据从服务器写入客户端

或者使用一个 fifo,但根据需要重新打开它,即在服务器上获取数据 - 在服务器上重新打开 fifo WR_ONLY,在客户端重新打开 fifo RD_ONLY,在客户端获取数据,从服务器读取数据后反之亦然。

http://man7.org/linux/man-pages/man7/pipe.7.html

关于linux - 何时为客户端-服务器 IPC 使用基于 Fifo 的套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46052981/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com