-
直接转换方法从数据流图到模块结构图在Open服务器第2版中的应用
资源介绍
15.6 open服务器第2版
在1 5 . 4节中,客户机调用 f o r k和e x e c构造了一个o p e n服务器,它说明了如何从子程序向父
程序传送文件描述符。本节将开发一个精灵进程样式的 o p e n服务器。一个服务器处理所有客户
机的请求。由于避免使用了 f o r k和e x e c,我们期望这一设计会更有效的。在客户机和服务器之
间仍将使用上一节说明的三个函数: s e r v _ l i s t e n、s e r v _ a c c e p t和c l i _ c o n n。这一服务器将表明:
一个服务器可以处理多个客户机,为此使用的技术是 1 2 . 5节中说明的s e l e c t和p o l l函数。
本节所述的客户机类似于1 5 . 4节中的客户机。确实,文件m a i n . c是完全相同的(见程序1 5 - 1 2)。
在o p e n . h头文件(见程序1 5 - 11)中则加了下面1行:
#define CS_OPEN "/home/stevens/open" /* server's well-known name */
因为在这里调用的是c l i _ c o n n而非f o r k和e x e c,所以文件o p e n . c与程序1 5 - 1 3完全不同。这示
于程序1 5 - 2 5中。
程序15-25 csopen函数
3 7 8 U N I X环境高级编程
图15-7 UNIX域套接口上客户机 -服务器连接
客户机 服务器
内核套接口 套接口 套接口