1. gzyueqian
      13352868059

      粵嵌重慶嵌入式Linux培訓解析并發(fā)服務器原理及框架

      更新時間: 2017-08-10 11:50:30來源: 粵嵌教育瀏覽量:5327

        目前大家所用的大多是X86服務器,其功能完善、運行速度快、軟件支持性好等優(yōu)點,已被人們普遍認同。但隨著互連網的發(fā)展,我們需要更多的小型服務器終端,因此,低成本、低功耗的嵌入式服務器將有極大的應用空間。那么粵嵌重慶嵌入式Linux培訓解析一下并發(fā)服務器原理及框架。

        基本的C/S服務模型。相互通信的網絡程序通常可以分為客戶端和服務器端兩部分。簡單的C/S服務模式客戶端和服務器采用的是一對一的關系,而實際上一個客戶同時可以與多個服務器通信,一個服務器同時也能與多個客戶通信。Linux下使用TCP套接字編程可以實現基于TCP/IP協(xié)議的面向連接的通信,它分為服務器端和客戶端兩部分。

        服務器端與客戶端連接的步驟如下:使用socket函數創(chuàng)建套接字;將創(chuàng)那的套接字綁定到指定的地址結構;Listen函數設置套接字為監(jiān)聽模式,使服務器進入被動打開的狀態(tài);接受客戶端的連接請求,建立連接;終止連接。

        客戶端實現步驟如下: 使用socket函數創(chuàng)建套接字;調用connect函數建立一個TCP服務器的連接;發(fā)送數據請求,接收服務器的數據應答;終止連接。這樣就建立了簡單的C/S連接模式,而所有基于TCP套接字的網絡服務也都是建立在這個基礎上的。

        多進程并發(fā)服務器模型。其中服務器每次只能處理一個客戶的請求,它的實現雖然很簡單但效率卻很低,在實際應用中,這樣的服務器是不能滿足實際需求的。在實際應用中為了讓一個服務器同時為多個客戶服務,處理多個客戶的請求,那么就需要用并發(fā)服務器。

        Linux下主要支持的并發(fā)服務器有進程、線程。創(chuàng)建線程要比進程快,但一個進程內的所有線程共享相同的內存空間、全局變量等信息,所以當一個線程崩潰時,它會影響同一進程中的其他線程。Linux系統(tǒng)中可以同時存在多個進程,但相對線程來說,進程是獨立的。它擁有獨立的地址空間、執(zhí)行堆棧、文件描述符等,在未經允許的情況下,一個進程不能訪問另一個進程的資源,因此一個進程崩潰不會造成其他進程的崩潰。

        多進程服務器原理。在多進程并發(fā)服務器中是通過調用fork或vfork函數來創(chuàng)建新進程。當父進程產生新的子進程后,父、子進程共享父進程在調用fork之前的所有描述符。接下來父進程只負責接收客戶請求,而子進程只負責處理客戶請求。

        對于粵嵌重慶嵌入式Linux培訓所講的并發(fā)服務器原理及框架,相信大家也了解了。這種低成本、低噪聲、低功耗、高穩(wěn)定性、高安全性的嵌入式服務器,將在我們信息化發(fā)展中的智能樓宇、智能家電、智能移動設備中獲得應用。




      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 外国一级AⅤ在线观看 | 思思99思思久久最新地址精品 | 午夜福利国产精品 | 亚洲综合自拍一区首页 | 亚洲欧美五码中文字幕 | 午夜性刺激在线观看视频 |