第十一章 网络编程
每個網絡應用都是基于客戶端-服務端模型的。根據這個模型,一個用用是由一個服務器和一個或多個客戶端組成的。服務器管理資源,以某種方式操作資源,為客戶端服務。例如,一個Web服務器管理著一組磁盤文件,它會代表客戶端進行檢索和執行。
客戶端-服務端模型中的基本操作是事務。一個客戶端-服務器事務由以下四步組成:
1、當一個客戶端需要服務時,它向服務器發送一個請求,發起一個事務。
2、服務器收到請求后,解釋它,并以適當的方式操作它的資源
3、服務器給客戶端發送一個響應,并等待下一個請求
4、客戶端收到響應并處理它
?
客戶端和服務器通過因特網這個全球網絡來通信。從程序員的觀點來看,我們可以把因特網看成是一個全球范圍的主機集合,具有以下幾個屬性:
1、每個因特網主機都有一個唯一的32位名字,稱為它的IP地址。IP地址通常是以一種成為點分十進制表示法來表示,其中每個字節由它的十進制表示,并用句點和其他字節分開。
2、IP地址的集合被映射為一個因特網域名的集合。
3、不同因特網主機上的進程能夠通過連接互相通信。
?
客戶端和服務器通過使用套接字接口建立連接。一個套接字是連接的一個端點,每個套接字都有相應的套接字地址,是由一個因特網地址和一個16位的整數端口組成的,用“地址:端口”來表示。
一個連接是由它兩端的套接字地址唯一確定的。
?
常見的幾個函數作用:
socket函數:客戶端和服務器使用socket函數類創建一個套接字描述符。
connect函數:客戶端調用connect函數來建立和服務器的連接。
bind函數:告訴內核將addr中的服務器套接字地址和套接字描述符sockfd聯系起來。
listen函數:將sockfd從一個主動套接字轉換為一個監聽套接字,該套接字可以接受來自客戶端的連接請求。
accept函數:服務器通過調用accept函數來等待來自客戶端的連接請求。
?
Web服務器使用HTTP協議和它們的客戶端彼此通信。瀏覽器向服務器請求靜態或動態的內容。對靜態內容的請求時通過從服務器磁盤取得文件并把它返回給客戶端來服務的。對動態內容的請求時通過在服務器上一個子進程的上下文中運行一個程序并將它的輸出返回給客戶端來服務的。
?
轉載于:https://www.cnblogs.com/sunnyDream/p/10326704.html
總結
- 上一篇: Java——BigInteger类和Bi
- 下一篇: C++随笔