什么是客户端-服务器系统?
客户端-服务器中的通信可以使用共享内存和消息传递进行通信。
这些技术可用于客户端-服务器系统中的通信。
沟通策略
我们可以探索在客户端-服务器系统中进行通信的其他三种策略,如下所示-
插座
套接字被定义为通信的端点。一对通过网络员工或一对套接字通信的进程,每个进程一个。
套接字由与端口号连接的IP地址标识。通常,套接字使用客户端服务器架构。服务器通过侦听指定的端口来等待传入的客户端请求。
一旦收到请求,服务器接受来自客户端-服务器的连接以完成通信。
例子
当客户端进程发起连接请求时,它的主机会为其分配一个端口。这个端口有一些大于1024的任意数字。
如果HOSTS上IP地址为126.48.5.30的客户端想要与地址为142.30.45.8的Web服务器建立连接,则可能会为HOSTS分配端口1465。
该连接将由一对套接字组成:126.48.5.30:1465位于HOSTS上,142.30.45.8:80位于Web服务器上。
远程过程调用(RPC)
它是RPC范式中最常见的远程服务形式之一。RPC被设计为一种抽象过程调用机制的方法,以便在具有网络连接的系统之间使用。
它在许多方面与IPC机制相似,通常建立在这样的系统之上。但是,我们正在处理进程在不同系统上执行的环境。我们必须使用基于消息的通信模式来提供远程服务。
管道
管道充当允许两个进程进行通信的连接。管道是早期UNIX系统中最早的IPC机制之一。它们通常为进程相互通信提供一种更简单的方法,尽管它们也有一些限制。
在UNIX和Windows系统上使用两种类型的管道-
普通管
命名管道
普通管
普通管道允许两个进程以标准过程消费者方式进行通信。
生产者写入一个管道,消费者从另一端读取。因此,普通管道是单向的,允许单向通信。不能从创建它的进程外部访问普通管道。
通常,父进程会创建一个管道并使用它与通过fork().
命名管道
普通管道提供了一种允许一对进程进行通信的简单机制。然而,普通管道仅在进程相互通信时才存在。
在UNIX和Windows系统上,一旦进程完成通信并终止,普通管道就不再存在。
命名管道提供了强大的通信工具。通信可以是双向的,不需要父子关系。一旦建立了命名管道,多个进程就可以使用它进行通信。