APUE读书笔记-20应用(2)

2020-10-16  本文已影响0人  QuietHeart

2、应用2——与网络打印机通信

这里对应原书中的第21章,讲述开发了一个可以和网络打印机通信的程序,以及期间需要考虑的问题。具体请参见原文参考资料,这里只给出一些简单的说明。

(1)简介

这里,我们开发了一个可以和网络打印机通信的程序。这些打印机可以通过以太网连接到多台计算机上面,提供明文文件或者附笔(PostScript)文件。应用程序通常使用因特网打印协议(IPP)和这些打印机进行交,当然也有一些可选的通信协议。

我们将要讲述两个程序:一个是print spooler 守护进程,它给printer发送作业和提交打印作业的命令给spooler守护进程。print spooler需要用到许多功能(例如和提交作业的客户进程进行通信,和printer进行通信,读取文件,扫描目录等等),所以我们需要用到前面讲述的很多函数。例如,我们使用线程(11章和12章)来简化print spooler的设计,使用sockets(16章)进行调度打印文件的程序与print spooler之间的交互,以及print spooler和网络printer之间的交互。

(2)实现

本章具体内容,属于应用开发的范围了,这里不再进行讲述。具体参见参考资料。这里只给出一个简单的图形,描述这里开发的程序:

                            Printer spooling 的组成

            +---------+              +------------+
            |  print  |<------------>|   printd   |
            | command |              |  printer   |
            +^------^-+              |   spooler  |<---- 
            /        \               +^-----^-----+     \   queue of files to be printed
           /          \        ------/      |            \
          /            \      /             |           +-v-----+    +-------+    +-------+
+---------+           +--------+            |           | file1 |--->| file2 |--->| file3 |
| file to |           | config |            |           +-------+    +-------+    +-------+
|  print  |           |  file  |            |
+---------+           +--------+            |
                                      +-----v----+
                                      |  printer |
                                      +----------+

(3)总结

这章对两个完整的程序进行了详细的讲述:print spooler守护进程,用于给网络printer发送打印作业;以及一个可以用来提交被打印的作业到spooling守护进程的命令。这样,我们可以看到之前章节中讲到的许多的内容的应用(例如线程,多I/O,文件I/O,套接字I/O,信号等)。

译者注

原文参考

参考: APUE2/ch21.html

上一篇下一篇

猜你喜欢

热点阅读