第 2 章设计分析
上显示并且进程也不会被任何终端所产生的终端信息所打断。
在 Client/Server 模式下,服务器监听(Listen)在一个特定的端口上等
待客户连接。连接成功后服务器和客户端通过端口进行数据通信。守护进程的
工作就是打开一个端口,并且等待(Listen)进入连接。如果客户端产生一个
连接请求,守护进程就创建(Fork)一个子服务器响应这个连接,而主服务器
继续监听其他的服务请求。
独立运行的守护进程由 init 脚本负责管理,所有独立运行的守护进程的脚
本 在 /etc/rc.d/init.d/ 目 录 下 。系 统 服 务 都 是独 立运 行 的 守 护 进 程 包 括 :
syslogd 和 cron 等。运行独立的守护进程工作方式称作:stand-alone。传
统的 C/S 模式的访问模式。服务器监听(Listen)在一个特点的端口上等待客
户端的联机。如果客户端产生一个连接请求,守护进程就创建(Fork)一个子
服务器响应这个连接,而主服务器继续监听。以保持多个子服务器池等待下一
个客户端请求。工作在 stand-alone 模式下的网络服务有 route、gated。另
外是大家最熟悉是 Web 服务器:Apache 和邮件服务器 Sendmail、域名服务
器 Bind。因为这些负载很大服务器上,预先创子服务器,可以通过客户的服务
速度。在 Linux 系统中可通过 stand-alone 工作模式启动的服务由/etc/rc.d/
下面对应的运行级别当中的符号链接启动。
图 2-2 守护进程工作模式示意图
2.3 网络套接字原理分析
要通过互联网进行通信,你至少需要一对套接字,其中一个运行于客户机
端 , 我 们 称 之 为 ClientSocket , 另 一 个 运 行 于 服 务 器 端 , 我 们 称 之 为
ServerSocket。
根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过
程可以分为三个步骤:服务器监听,客户端请求,连接确认。所谓服务器监听,
是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,
实时监控网络状态。
所谓客户端请求,是指由客户端的套接字提出连接请求,要连接的目标是
服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的