网络编程与集群硬件搭建指南
1. 程序测试替代方法
在尚未搭建网络的情况下,可采用替代方式测试程序对。具体步骤如下:
1. 开启第二个登录会话(在 Linux 系统中,可通过打开新的 X 窗口或按下 Alt + F2 实现),将其视为服务器机器。
2. 从原登录会话运行客户端应用程序,目标 IP 地址设为 127.0.0.1,这是通用的“本地回环”IP 地址,意味着“同一台机器”。
3. 其他操作与之前的示例保持一致。
2. 自动启动远程服务器
在客户端/服务器示例中,通常需手动启动服务器,但实际应用里,服务器一般在尝试连接前就已运行。例如,数据库服务器通常在开机时启动数据库服务器应用程序,并在出现故障时重启,客户端与数据库服务器交互,期望其始终可用。常见的如 Web 浏览器作为客户端访问喜爱的网站,期望网站每周 7 天、每天 24 小时都处于运行状态。
若不想每次都手动启动实验服务器,也不想让其一直运行,Unix 允许指定自己的服务,但设置此功能需要 root 权限。
Unix 网络互联守护进程 inetd 在开机时启动,被称为超级服务器。它是一种通用服务,等待与任何支持的服务建立连接。即无需让服务全天运行,可配置 inetd 响应连接尝试,实际启动服务进程,重新分配标准输入和输出流(在普通服务器中为套接字连接)后,将控制权交给服务进程。inetd 服务只需从标准输入(文件描述符 0)读取数据,并可选择通过标准输出(文件描述符 1)将数据写回客户端。
以下是两个服务示例代码:
// LISTING 3.8C //