999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Client/Server模式的進程通信實現研究

2021-11-20 13:53:21蔡坤琪趙安學邢潔清
無線互聯科技 2021年24期
關鍵詞:進程服務

蔡坤琪,趙安學,邢潔清*

(1.瓊臺師范學院 信息科學技術學院,海南 海口 571100;2.瓊臺師范學院 教育大數據與人工智能研究所,海南 海口 571100)

1 Client/Server模式

在計算機網絡中,網絡主機除了要給本地用戶提供服務,還要給網絡的其他主機的用戶提供服務。為遠程計算機提供服務的進程被稱為Server進程,本地計算機請求服務并發起本次進程通信的進程被稱為Client進程。當客戶端進程發出服務請求時,遠程服務器進程會響應該客戶端請求,并提供進程間通信的一種模式,被稱為客戶端/服務器模式。

2 采用Client/Server模式的理由[1]

在TCP/IP網絡應用中,通信的兩個進程間相互作用的主要模式是客戶機/服務器模式(Client/Server),采用Client/ Server模式的理由主要有以下幾點。

2.1 網絡資源分布不均

互聯網資源分布具有不均勻性。

2.1.1 硬件

網絡中主機系統類型的作用和能力等各方面差異很大。主機設備可以是某臺大型的電腦高配置的服務器,也可以是一臺個人電腦,甚至是一個PDA或是一個家電。

2.1.2 軟件

由于所屬權管理與運行環境等方面的原因,應用軟件都是安裝在客戶端主機系統中,用戶可以訪問網絡,注冊成合法用戶,然后提出和完成計算任務。

2.2 網絡環境中進程通信的異步性

在互聯網環境中,進程通信具有異步性。不同結點分布在不同網絡空間,結點系統中的進程不時發出通信請求,希望和某臺主機的某個進程通信。

該模式不存在統一調度與協調的高層操作系統。

Client/ Server模式的工作實質是“請求驅動”。毎次通信由Client進程隨機發起。

3 Client/Server進程通信實現

3.1 Server對并發請求的處理能力

在互聯網中,Server必須要有處理并發請求的能力。在同一個時點,可能有多個Client進程向一個Server發出服務請求。

解決服務器處理并發請求的方案基本上有以下兩種:一是采用并發服務器的方法;二是采用重復服務器的方法。

服務器并發的核心是服務器的守護程序(Daemon),系統啟動的時候隨之啟動。在沒有Client的服務請求到達時,并發Server處于等待狀態。

當客戶端服務請求到達時,服務器端根據客戶端的服務請求的進程激活相應的子進程,該子進程為客戶端提供服務,服務器返回等待狀態。

服務器必須具有在整個網絡中眾所周知的進程地址。互聯網中的Client進程可以根據Server進程的熟知地址,向Server提出服務請求。在實現進程通信的過程中,Client與 Server進程分別形成自己的半相關的三元組,然后Client根據Server進程的熟知進程地址建立相關的五元組。

重復服務器通過設置請求隊列來存儲客戶端的服務請求。服務器采用先到先得的原則,依次處理客戶的服務請求。

并發 Server適應于面向連接的服務類型,而重復 Server適應于無連接的服務類型。

3.2 UNIX進程通信實現方法

BSD UNIX更直觀地解釋網絡環境中進程通信的實現方法。

3.2.1 socket的基本概念

套接字是中間件抽象層,用于在應用程序層和TCP/IP協議套件之間的通信。它是一組接口。socket將復雜的TCP/IP協議系列隱藏在socket接口后面。用戶擁有了一套簡單的接口,從而使socket可以組織數據,遵守指定的協議。

3.2.2 套接字通信機制

套接字允許位于不同計算機上的互聯進程執行通信功能。使用套接字可在特定計算機上標記和定位特定進程的地址,以便可以將數據準確地傳輸到目標進程。套接字包含3個參數:通信目標IP地址、傳輸層協議(TCP或UDP)和端口號。IP地址用于標識目標計算機,端口號用于標識目標計算機上的特定進程。套接字之間的連接分為3個階段:監視服務器、請求客戶端和確認連接[2]。

3.3 UNIX socket調用

對于UNIX系統,socket調用是網絡的輸入/輸出。

3.3.1 創建socket—socket()

應用程序在使用socket之前必須首先擁有一個socket號。這就相當于用戶在安裝電話時首先要向電話局申請一個電話號碼。

socket()向應用程序提供創建socket的手段,socket()調用的格式是:

Socketid=socket (af, type, protocol)

返回的Socketid值是一個整數,申請一個屬于自己此次進程通信的socket號,創建socket,實際上是申請1個屬于自己此次進程通信的socket號,socket()一共有以下3個參數:①地址族(address family af);②類型type;③協議protocol。它們分別代表socket使用的地址類型,創建socket的應用程序所希望的通信服務類型以及socket請求使用的協議。

3.3.2 指定本地地址—bind()

創建socket()并且調用,是完成socket通信創建的第一步。它僅在相關的五元組中指定協議,并且bind()系統調用會給出本地地址和本地端口。

bind()系統調用的格式是:bind(socketid,localaddr,addr elen)

其中,Socketid是本地的socket號;localaddr是本地地址,在TCP/IP族中它就是本地主機的IP地址;addrelen對應于IP地址長度。

3.3.3 建立套接字連接connect()和accept()

accept()和connect()調用終止兩個關聯的連接。其中,connect()用于建立連接。連接在這里有兩種含義,一種是在兩個socket之間進行通信,另一種是在傳輸層建立連接。例如,TCP的connect()連接調用主要用于面向連接的傳輸服務,而accept()調用用于面向連接的傳輸服務。無連接socket進程可以調用connect()。但是,此時本地系統和遠程系統之間沒有真正的連接,它實際上通知操作系統,它將指定的套接字數據發送到此套接字。

3.3.4 接收socket連接—listen()

listen()調用是用于面向連接Server,它表示同意接受連接。

listen()調用格式是:listen(socketid,quelen)

其中,Socketid是本地socket號,表示Server可以在此socket號上接受服務請求,quelen表示請求的隊列長度。

3.3.5 發送數據write()writev()與send()sendto()sendmsg()

用于面向連接傳輸write()writev()send()調用的格式比較一致,例如:

緩沖發送:write(socketid,buffbuffon)

集中發送:writev(socketid,iovecor,vectorlen)

可控緩沖發送:send(socketid,buff,buffer,flags)

3.3.6 接收數據read()readv()與recvfrom()recvmsg()

接收數據調用read()ready()與recvfrom()recvmsg()和發送數據調用是對應的。不同之處在于,發送數據調用的Buff是指針,而接收數據調用中的Buff是實際讀出的值。

4 結語

Client/Server模式直至今天仍然有其自身的優勢,這種應用程序體系結構仍將長期存在。學習和了解這種模式,有助于人們理解Client/Server模式,對基于這種模式的應用程序開發和服務的搭建都很有益處。

猜你喜歡
進程服務
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
服務在身邊 健康每一天
今日農業(2019年14期)2019-09-18 01:21:54
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年15期)2019-01-03 12:11:33
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
主站蜘蛛池模板: 亚洲成a人在线播放www| 亚洲天堂啪啪| 免费Aⅴ片在线观看蜜芽Tⅴ| 精品一区二区三区无码视频无码| 久青草免费在线视频| 久久国产成人精品国产成人亚洲 | 亚洲人精品亚洲人成在线| 国产啪在线| 激情六月丁香婷婷| 青青热久免费精品视频6| 国产va在线观看| 91久久国产热精品免费| 性69交片免费看| 天天躁夜夜躁狠狠躁图片| 午夜不卡视频| 亚洲一区无码在线| 国产精品尤物铁牛tv| 亚洲乱码视频| A级全黄试看30分钟小视频| 午夜视频www| 91青青在线视频| 91在线视频福利| 国产电话自拍伊人| 日韩中文无码av超清| 亚洲中文字幕av无码区| 久久人妻xunleige无码| 黄色网站不卡无码| 91视频区| 99久久性生片| 毛片免费试看| 国产在线观看人成激情视频| 91原创视频在线| 欧美精品另类| 夜夜拍夜夜爽| 伊大人香蕉久久网欧美| 亚洲天堂啪啪| 午夜国产理论| 国内精品久久人妻无码大片高| 粗大猛烈进出高潮视频无码| www.亚洲一区二区三区| 看国产一级毛片| 亚洲精品爱草草视频在线| 久久狠狠色噜噜狠狠狠狠97视色| 亚洲精品欧美日本中文字幕| 久久无码高潮喷水| 成人自拍视频在线观看| 精品無碼一區在線觀看 | 免费a级毛片18以上观看精品| 色婷婷成人| 99精品伊人久久久大香线蕉| 亚洲一级毛片在线播放| 黄片一区二区三区| 伊人无码视屏| 国产91全国探花系列在线播放 | 亚洲国产成人综合精品2020| a国产精品| 亚洲天堂网在线视频| www.99在线观看| 999精品色在线观看| 中文字幕在线不卡视频| 欧美精品1区| 欧美日韩在线亚洲国产人| 国产成人精品高清不卡在线| 最新国产你懂的在线网址| 成人一级免费视频| 亚洲女同欧美在线| 曰AV在线无码| 国产成人精品午夜视频'| 国产正在播放| 久久青草视频| a免费毛片在线播放| 亚洲男人天堂2020| 亚洲av无码片一区二区三区| 人人看人人鲁狠狠高清| 亚洲一区色| 欧美综合成人| 熟妇丰满人妻av无码区| 日本一区高清| 99视频精品全国免费品| 99成人在线观看| 白浆免费视频国产精品视频| 亚洲人成亚洲精品|