什么是客户端-服务器系统?


客户端-服务器之间的通信可以使用共享内存和消息传递进行通信。

这些技术可用于客户端-服务器系统中的通信。

通信策略

我们可以探索客户端-服务器系统中其他三种通信策略,如下所示:

套接字

套接字定义为通信的端点。一对通过网络员工通信的进程或一对套接字,每个进程一个。

套接字由连接到端口号的 IP 地址标识。通常,套接字使用客户端服务器架构。服务器通过侦听指定端口来等待传入的客户端请求。

收到请求后,服务器接受来自客户端-服务器的连接以完成通信。

示例

当客户端进程启动连接请求时,其主机计算机会为其分配一个端口。此端口具有大于 1024 的某个任意数字。

如果主机 S 上 IP 地址为 126.48.5.30 的客户端想要与地址为 142.30.45.8 的 Web 服务器建立连接,则主机 S 可能会被分配端口 1465。

连接将包括一对套接字:主机 S 上的 126.48.5.30:1465 和 Web 服务器上的 142.30.45.8:80。

远程过程调用 (RPC)

它是 RPC 范式中最常见的远程服务形式之一。RPC 被设计为一种抽象过程调用机制,用于在具有网络连接的系统之间使用。

它在许多方面类似于 IPC 机制,并且通常构建在这样的系统之上。但是,我们正在处理一个进程在单独的系统上执行的环境。我们必须使用基于消息的通信模式来提供远程服务。

管道

管道充当连接,允许两个进程进行通信。管道是早期 UNIX 系统中最早的 IPC 机制之一。它们通常为进程提供了一种更简单的方式相互通信,尽管它们也有一些限制。

UNIX 和 Windows 系统上使用两种类型的管道:

  • 普通管道

  • 命名管道

普通管道

普通管道允许两个进程以标准的过程消费者方式进行通信。

生产者写入一个管道,消费者从另一个端读取。因此,普通管道是单向的,允许单向通信。普通管道无法从创建它的进程外部访问。

通常,父进程创建管道并使用它与通过 fork() 创建的子进程进行通信。

命名管道

普通管道提供了一种简单的机制,允许一对进程进行通信。但是,普通管道仅在进程相互通信时才存在。

在 UNIX 和 Windows 系统上,一旦进程完成通信并终止,普通管道将不复存在。

命名管道提供了一个强大的通信工具。通信可以是双向的,不需要父子关系。建立命名管道后,多个进程可以使用它进行通信。

更新于: 2021年11月30日

974 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告