什麼是客戶端-伺服器系統?
客戶端-伺服器之間的通訊可以使用共享記憶體和訊息傳遞進行通訊。
這些技術可用於客戶端-伺服器系統中的通訊。
通訊策略
我們可以探索客戶端-伺服器系統中其他三種通訊策略,如下所示:
套接字
套接字定義為通訊的端點。一對透過網路員工通訊的程序或一對套接字,每個程序一個。
套接字由連線到埠號的 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 系統上,一旦程序完成通訊並終止,普通管道將不復存在。
命名管道提供了一個強大的通訊工具。通訊可以是雙向的,不需要父子關係。建立命名管道後,多個程序可以使用它進行通訊。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP