【问题标题】:Fifo vs Client/Server先进先出 vs 客户端/服务器
【发布时间】:2014-07-30 18:13:59
【问题描述】:

我是新来的……我想假设我不想解决我的问题,但我需要了解客户端/服务器程序和 FIFO 读取器/写入器程序之间的区别……我解释得更好...

我必须为考试做一个项目。该项目的目的是“定义脚本 Bash 和 C 程序以自动更正考试任务。”

教授让我写一些 Bash 脚本来完成考试任务,检查它们,并为每项任务将分数写在一个文件中。到现在一切都清楚了。

然后教授问4C程序,我什么都不懂了。我将项目规范中的内容完全翻译成英文:

fifo_reader 这是一个 C 客户端,它读取 FIFO 的内容并将其打印到标准输出上 将 Fifo 的名称作为参数(作为命令行的参数)

fifo_writer

这是一个将标准输入内容写入 FIFO 的 C 客户端 将 Fifo 的名称作为参数(作为命令行的参数)

network_server_echo

这是一个 C 服务器,它监听一个网络端口(TCP 或 UDP)(从命令行作为参数传递的端口号和积压值)并且:

  1. 读取输入流上的字符串

  2. 将已经读取的字符串写入对应的输出流

network_client_echo

这是network_server_echo的客户端版本

这里有什么我不明白的: fifo 写入器/读取器不像带有套接字的客户端/服务器应用程序?所以,教授用两种不同的方式问我们同样的问题?但是当教授谈到 fifo 读写器时,他将它们都定义为客户......也许我没有理解教授真正问我们什么......谁能帮助我吗?

感谢

【问题讨论】:

    标签: c linux bash sockets fifo


    【解决方案1】:

    我想你已经完全理解了这个问题:-)

    在我看来,这项工作应该以两种不同的方式完成。 named fifo 不是 fifo 不是 socket。因此,您将学习如何访问不同的 unix 通信方式。我认为看看所有这些方法的差异是有意义的。

    玩得开心!

    【讨论】:

      【解决方案2】:

      太棒了!你理解的对。 FIFO 文件(通常称为 named pipes)在本地工作(在类似 UNIX 的系统上),而基于 sockets 的解决方案用于网络。

      但是,在 Windows 中,named pipes 也可以在 (microsoft) 网络上工作,因此您可以在一台计算机上打开命名管道 FIFO 并从第二台计算机访问它。这在类 UNIX 系统中不起作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多