【问题标题】:Confusion in understanding mailslot理解邮槽的困惑
【发布时间】:2014-04-26 05:33:24
【问题描述】:

此快照来自Windows System Programming (4th Edition)

我对邮槽的疑问很少,

  1. 为什么邮槽称为单向?虽然可以有多个客户端/服务器
  2. 为什么邮槽的写者被称为客户端,而读者被称为服务器
  3. 如果没有阅读器,为什么打开会失败?是不是我会写,没有服务器会读,或者它可能会在一段时间后读?

我努力在 Google 上搜索,但没有得到确切的答案。

【问题讨论】:

    标签: winapi visual-c++ inter-process-communicat mailslot


    【解决方案1】:

    1.为什么邮槽叫单向?虽然可以有多个客户端/服务器

    它确实是单向的。创建邮槽的进程只能从中读取,不能写入。打开邮槽的进程只能写入,不能读取。邮槽不像命名管道或套接字,其中数据可以通过单个连接双向流动。如果创建邮槽的进程想要发送回复,它必须写入不同的邮槽或其他 IPC 机制。

    2.为什么邮槽的写者称为客户端,而读者称为服务器

    大多数 IPC 机制都有客户端/服务器模型。 “服务器”创建“客户端”然后访问的资源。邮槽符合该描述,因为读者必须先创建邮槽,然后作者才能对其进行写入。

    3.为什么没有阅读器打开会失败?是不是有可能我会写,没有服务器会读,或者它可能会在一段时间后读?

    如果没有阅读器,则邮槽不存在。读者必须先创建邮槽,然后作者才能写入。当所有读者都关闭了他们对邮槽的句柄(或以其他方式终止)时,邮槽不再存在并且不能再被写入。

    【讨论】:

      猜你喜欢
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 2013-05-15
      • 2013-10-18
      • 2023-03-27
      相关资源
      最近更新 更多