什麼是客戶端-伺服器系統?


客戶端-伺服器之間的通訊可以使用共享記憶體和訊息傳遞進行通訊。

這些技術可用於客戶端-伺服器系統中的通訊。

通訊策略

我們可以探索客戶端-伺服器系統中其他三種通訊策略,如下所示:

套接字

套接字定義為通訊的端點。一對透過網路員工通訊的程序或一對套接字,每個程序一個。

套接字由連線到埠號的 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 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.